Add test for subcommands
This tests that the expected subcommands register in the shell client, by looking at the output that would show up in "cinder help". The purpose of this is to help prevent us from accidentally deleting some commands when refactoring shell code. TODO: cover commands post-3.0 Change-Id: Ifcbc08ae9184fa33049b18f8ad7ef5d92003a7b8
This commit is contained in:
parent
7f282a5ea4
commit
a7e9a49a3f
cinderclient
@ -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(
|
||||
|
@ -1443,3 +1443,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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user