summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-02-12 15:44:39 +0000
committerGerrit Code Review <review@openstack.org>2020-02-12 15:44:39 +0000
commiteb853bd0fd6ab6d07cc18cb6aeef142a2eed80fc (patch)
tree8cee4408d5591e4e10404d73fa3558904912d66b
parent48a9cd5acaf970ef32df95f39722db08fcff284b (diff)
parenta7e9a49a3f851097b323093048c62b2acbbf5090 (diff)
downloadpython-cinderclient-eb853bd0fd6ab6d07cc18cb6aeef142a2eed80fc.tar.gz
Merge "Add test for subcommands"
-rw-r--r--cinderclient/shell.py1
-rw-r--r--cinderclient/tests/unit/v3/test_shell.py118
2 files changed, 119 insertions, 0 deletions
diff --git a/cinderclient/shell.py b/cinderclient/shell.py
index d948332..57c9d8c 100644
--- a/cinderclient/shell.py
+++ b/cinderclient/shell.py
@@ -135,6 +135,7 @@ class OpenStackCinderShell(object):
def __init__(self):
self.ks_logger = None
self.client_logger = None
+ self.extensions = []
def get_base_parser(self):
parser = CinderClientArgumentParser(
diff --git a/cinderclient/tests/unit/v3/test_shell.py b/cinderclient/tests/unit/v3/test_shell.py
index e202655..74e702e 100644
--- a/cinderclient/tests/unit/v3/test_shell.py
+++ b/cinderclient/tests/unit/v3/test_shell.py
@@ -1442,3 +1442,121 @@ class ShellTest(utils.TestCase):
'--os-volume-api-version 3.59 transfer-list')
url = ('/volume-transfers/detail')
self.assert_called('GET', url)
+
+ def test_subcommand_parser(self):
+ """Ensure that all the expected commands show up.
+
+ This test ensures that refactoring code does not somehow result in
+ a command accidentally ceasing to exist.
+
+ TODO: add a similar test for 3.59 or so
+ """
+ p = self.shell.get_subcommand_parser(api_versions.APIVersion("3.0"),
+ input_args=['help'], do_help=True)
+ help_text = p.format_help()
+
+ # These are v3.0 commands only
+ expected_commands = ('absolute-limits',
+ 'api-version',
+ 'availability-zone-list',
+ 'backup-create',
+ 'backup-delete',
+ 'backup-export',
+ 'backup-import',
+ 'backup-list',
+ 'backup-reset-state',
+ 'backup-restore',
+ 'backup-show',
+ 'cgsnapshot-create',
+ 'cgsnapshot-delete',
+ 'cgsnapshot-list',
+ 'cgsnapshot-show',
+ 'consisgroup-create',
+ 'consisgroup-create-from-src',
+ 'consisgroup-delete',
+ 'consisgroup-list',
+ 'consisgroup-show',
+ 'consisgroup-update',
+ 'create',
+ 'delete',
+ 'encryption-type-create',
+ 'encryption-type-delete',
+ 'encryption-type-list',
+ 'encryption-type-show',
+ 'encryption-type-update',
+ 'extend',
+ 'extra-specs-list',
+ 'failover-host',
+ 'force-delete',
+ 'freeze-host',
+ 'get-capabilities',
+ 'get-pools',
+ 'image-metadata',
+ 'image-metadata-show',
+ 'list',
+ 'manage',
+ 'metadata',
+ 'metadata-show',
+ 'metadata-update-all',
+ 'migrate',
+ 'qos-associate',
+ 'qos-create',
+ 'qos-delete',
+ 'qos-disassociate',
+ 'qos-disassociate-all',
+ 'qos-get-association',
+ 'qos-key',
+ 'qos-list',
+ 'qos-show',
+ 'quota-class-show',
+ 'quota-class-update',
+ 'quota-defaults',
+ 'quota-delete',
+ 'quota-show',
+ 'quota-update',
+ 'quota-usage',
+ 'rate-limits',
+ 'readonly-mode-update',
+ 'rename',
+ 'reset-state',
+ 'retype',
+ 'service-disable',
+ 'service-enable',
+ 'service-list',
+ 'set-bootable',
+ 'show',
+ 'snapshot-create',
+ 'snapshot-delete',
+ 'snapshot-list',
+ 'snapshot-manage',
+ 'snapshot-metadata',
+ 'snapshot-metadata-show',
+ 'snapshot-metadata-update-all',
+ 'snapshot-rename',
+ 'snapshot-reset-state',
+ 'snapshot-show',
+ 'snapshot-unmanage',
+ 'thaw-host',
+ 'transfer-accept',
+ 'transfer-create',
+ 'transfer-delete',
+ 'transfer-list',
+ 'transfer-show',
+ 'type-access-add',
+ 'type-access-list',
+ 'type-access-remove',
+ 'type-create',
+ 'type-default',
+ 'type-delete',
+ 'type-key',
+ 'type-list',
+ 'type-show',
+ 'type-update',
+ 'unmanage',
+ 'upload-to-image',
+ 'version-list',
+ 'bash-completion',
+ 'help',)
+
+ for e in expected_commands:
+ self.assertIn(' ' + e, help_text)