Do not iterate action.choices if it is none

Do not iterate action.choices in the method add_arguments
in the class OpenStackHelpFormatter if action.choices is
not iterable because it is none.

Change-Id: Ie7110adb798326e5856fddfb6a7365c663b84998
Closes-Bug: #1372152
This commit is contained in:
Christian Berendt
2014-09-21 21:48:46 +02:00
parent 0b06683be6
commit a5bbba4833
2 changed files with 8 additions and 0 deletions

View File

@@ -443,6 +443,8 @@ class OpenStackHelpFormatter(argparse.HelpFormatter):
def add_arguments(self, actions):
for action in filter(lambda x: not x.option_strings, actions):
if not action.choices:
continue
for choice in action.choices:
length = len(choice) + self.INDENT_BEFORE_ARGUMENTS
if(length > self._max_help_position and

View File

@@ -115,6 +115,12 @@ class ShellTest(utils.TestCase):
self.assertThat(help_text,
matchers.MatchesRegex(required))
def test_help_command_with_no_action_choices(self):
required = 'usage: keystone user-update'
help_text = self.shell('help user-update')
self.assertThat(help_text,
matchers.MatchesRegex(required))
def test_auth_no_credentials(self):
with testtools.ExpectedException(
exceptions.CommandError, 'Expecting'):