summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/common/module.py20
-rw-r--r--openstackclient/tests/common/test_module.py16
2 files changed, 28 insertions, 8 deletions
diff --git a/openstackclient/common/module.py b/openstackclient/common/module.py
index a3dea5da..30c67c68 100644
--- a/openstackclient/common/module.py
+++ b/openstackclient/common/module.py
@@ -19,6 +19,7 @@ import six
import sys
from openstackclient.common import command
+from openstackclient.common import utils
class ListCommand(command.Lister):
@@ -29,9 +30,24 @@ class ListCommand(command.Lister):
def take_action(self, parsed_args):
cm = self.app.command_manager
groups = cm.get_command_groups()
-
+ groups = sorted(groups)
columns = ('Command Group', 'Commands')
- return (columns, ((c, cm.get_command_names(group=c)) for c in groups))
+
+ commands = []
+ for group in groups:
+ command_names = cm.get_command_names(group)
+ command_names = sorted(command_names)
+
+ if command_names != []:
+
+ # TODO(bapalm): Fix this when cliff properly supports
+ # handling the detection rather than using the hard-code below.
+ if parsed_args.formatter == 'table':
+ command_names = utils.format_list(command_names, "\n")
+
+ commands.append((group, command_names))
+
+ return (columns, commands)
class ListModule(command.ShowOne):
diff --git a/openstackclient/tests/common/test_module.py b/openstackclient/tests/common/test_module.py
index 2821da9e..7d08dae7 100644
--- a/openstackclient/tests/common/test_module.py
+++ b/openstackclient/tests/common/test_module.py
@@ -48,10 +48,11 @@ class TestCommandList(utils.TestCommand):
super(TestCommandList, self).setUp()
self.app.command_manager = mock.Mock()
- self.app.command_manager.get_command_groups.return_value = ['test']
+ self.app.command_manager.get_command_groups.return_value = [
+ 'openstack.common'
+ ]
self.app.command_manager.get_command_names.return_value = [
- 'one',
- 'cmd two',
+ 'limits show\nextension list'
]
# Get the command object to test
@@ -67,12 +68,15 @@ class TestCommandList(utils.TestCommand):
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
+ # TODO(bapalm): Adjust this when cliff properly supports
+ # handling the detection rather than using the hard-code below.
collist = ('Command Group', 'Commands')
self.assertEqual(collist, columns)
datalist = ((
- 'test',
- ['one', 'cmd two'],
- ), )
+ 'openstack.common',
+ 'limits show\nextension list'
+ ),)
+
self.assertEqual(datalist, tuple(data))