summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Berendt <berendt@b1-systems.de>2014-09-21 21:48:46 +0200
committerChristian Berendt <berendt@b1-systems.de>2014-09-21 21:58:48 +0200
commita5bbba4833a6acc802e8a733db6aa307ed8acedf (patch)
tree8a24bc5b5dcd06c07a663fe0954f66bba347e911
parent0b06683be6d13d21dfffa19be46e1159edb9fce0 (diff)
downloadpython-keystoneclient-a5bbba4833a6acc802e8a733db6aa307ed8acedf.tar.gz
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
-rw-r--r--keystoneclient/shell.py2
-rw-r--r--keystoneclient/tests/test_shell.py6
2 files changed, 8 insertions, 0 deletions
diff --git a/keystoneclient/shell.py b/keystoneclient/shell.py
index 61b93e9..ad8d127 100644
--- a/keystoneclient/shell.py
+++ b/keystoneclient/shell.py
@@ -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
diff --git a/keystoneclient/tests/test_shell.py b/keystoneclient/tests/test_shell.py
index 2f7586b..fe720fe 100644
--- a/keystoneclient/tests/test_shell.py
+++ b/keystoneclient/tests/test_shell.py
@@ -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'):