Merge "modify 'swift <sub_command> —help' display"

This commit is contained in:
Jenkins 2016-12-13 23:00:01 +00:00 committed by Gerrit Code Review
commit 39a0eda486
2 changed files with 17 additions and 8 deletions
swiftclient
tests/unit

@ -884,7 +884,8 @@ st_upload_options = '''[--changed] [--skip-identical] [--segment-size <size>]
<container> <file_or_directory> [<file_or_directory>] [...] <container> <file_or_directory> [<file_or_directory>] [...]
''' '''
st_upload_help = ''' Uploads specified files and directories to the given container. st_upload_help = '''
Uploads specified files and directories to the given container.
Positional arguments: Positional arguments:
<container> Name of container to upload to. <container> Name of container to upload to.
@ -1121,7 +1122,8 @@ def st_upload(parser, args, output_manager):
output_manager.error(e.value) output_manager.error(e.value)
st_capabilities_options = "[--json] [<proxy_url>]" st_capabilities_options = '''[--json] [<proxy_url>]
'''
st_info_options = st_capabilities_options st_info_options = st_capabilities_options
st_capabilities_help = ''' st_capabilities_help = '''
Retrieve capability of the proxy. Retrieve capability of the proxy.
@ -1221,7 +1223,8 @@ def st_auth(parser, args, thread_manager):
st_tempurl_options = '''[--absolute] st_tempurl_options = '''[--absolute]
<method> <seconds> <path> <key>''' <method> <seconds> <path> <key>
'''
st_tempurl_help = ''' st_tempurl_help = '''
@ -1329,9 +1332,12 @@ def parse_args(parser, args, enforce_requires=True):
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
if args and options.get('help'): if args and options.get('help'):
_help = globals().get('st_%s_help' % args[0], _help = globals().get('st_%s_help' % args[0])
"no help for %s" % args[0]) _options = globals().get('st_%s_options' % args[0], "\n")
print(_help) if _help:
print("Usage: %s %s %s\n%s" % (BASENAME, args[0], _options, _help))
else:
print("no such command: %s" % args[0])
exit() exit()
# Short circuit for tempurl, which doesn't need auth # Short circuit for tempurl, which doesn't need auth

@ -1688,18 +1688,21 @@ class TestSubcommandHelp(unittest.TestCase):
def test_subcommand_help(self): def test_subcommand_help(self):
for command in swiftclient.shell.commands: for command in swiftclient.shell.commands:
help_var = 'st_%s_help' % command help_var = 'st_%s_help' % command
options_var = 'st_%s_options' % command
self.assertTrue(hasattr(swiftclient.shell, help_var)) self.assertTrue(hasattr(swiftclient.shell, help_var))
with CaptureOutput() as out: with CaptureOutput() as out:
argv = ['', command, '--help'] argv = ['', command, '--help']
self.assertRaises(SystemExit, swiftclient.shell.main, argv) self.assertRaises(SystemExit, swiftclient.shell.main, argv)
expected = vars(swiftclient.shell)[help_var] expected = 'Usage: swift %s %s\n%s' % (
command, vars(swiftclient.shell).get(options_var, "\n"),
vars(swiftclient.shell)[help_var])
self.assertEqual(out.strip('\n'), expected) self.assertEqual(out.strip('\n'), expected)
def test_no_help(self): def test_no_help(self):
with CaptureOutput() as out: with CaptureOutput() as out:
argv = ['', 'bad_command', '--help'] argv = ['', 'bad_command', '--help']
self.assertRaises(SystemExit, swiftclient.shell.main, argv) self.assertRaises(SystemExit, swiftclient.shell.main, argv)
expected = 'no help for bad_command' expected = 'no such command: bad_command'
self.assertEqual(out.strip('\n'), expected) self.assertEqual(out.strip('\n'), expected)