You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by mc...@apache.org on 2014/10/16 15:07:21 UTC

git commit: Fix errors in help rendering:

Repository: incubator-aurora
Updated Branches:
  refs/heads/master 797b8152b -> 9534ea303


Fix errors in help rendering:

- Put plugin-generated options into the correct order.
- Include the option-name in the detailed help list.
- Add missing metavars.

Bugs closed: aurora-831

Reviewed at https://reviews.apache.org/r/26688/


Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/9534ea30
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/9534ea30
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/9534ea30

Branch: refs/heads/master
Commit: 9534ea30330a954cf806a3f0cc3b52dbe6cbb9ff
Parents: 797b815
Author: Mark Chu-Carroll <mc...@twopensource.com>
Authored: Thu Oct 16 09:04:40 2014 -0400
Committer: Mark Chu-Carroll <mc...@twitter.com>
Committed: Thu Oct 16 09:04:40 2014 -0400

----------------------------------------------------------------------
 .../python/apache/aurora/client/cli/__init__.py |  3 ++
 .../python/apache/aurora/client/cli/options.py  |  5 +++-
 .../aurora/client/cli/standalone_client.py      |  4 +--
 .../apache/aurora/client/cli/test_help.py       | 29 ++++++++++++++++++++
 4 files changed, 38 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/9534ea30/src/main/python/apache/aurora/client/cli/__init__.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/cli/__init__.py b/src/main/python/apache/aurora/client/cli/__init__.py
index da9d5b6..376106c 100644
--- a/src/main/python/apache/aurora/client/cli/__init__.py
+++ b/src/main/python/apache/aurora/client/cli/__init__.py
@@ -529,7 +529,10 @@ class Verb(AuroraCommand):
     users may want to specify usage themselves.
     """
     result = [self.name]
+    for plugin in self.noun.commandline.plugins:
+      result += ["  " + opt.render_usage() for opt in plugin.get_options()]
     result += [opt.render_usage() for opt in self.get_options()]
+
     return " ".join(result)
 
   @abstractmethod

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/9534ea30/src/main/python/apache/aurora/client/cli/options.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/cli/options.py b/src/main/python/apache/aurora/client/cli/options.py
index dc76c25..1f5cbb6 100644
--- a/src/main/python/apache/aurora/client/cli/options.py
+++ b/src/main/python/apache/aurora/client/cli/options.py
@@ -82,7 +82,10 @@ class CommandOption(object):
     elif self.type is None and "choices" in self.kwargs:
       result = "%s=%s" % (self.name, self.kwargs["choices"])
     else:
-      result = "%s" % (self.get_displayname())
+      if self.name.startswith("--"):
+        result = "%s=%s" % (self.name, self.get_displayname())
+      else:
+        result = "%s" % self.get_displayname()
     return [result, "\t" + self.help]
 
   def add_to_parser(self, parser):

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/9534ea30/src/main/python/apache/aurora/client/cli/standalone_client.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/cli/standalone_client.py b/src/main/python/apache/aurora/client/cli/standalone_client.py
index 20f4d7e..a4b71eb 100644
--- a/src/main/python/apache/aurora/client/cli/standalone_client.py
+++ b/src/main/python/apache/aurora/client/cli/standalone_client.py
@@ -58,8 +58,8 @@ class AuroraLogConfigurationPlugin(ConfigurationPlugin):
         CommandOption("--verbose-logging", "-v", default=False, action="store_true",
           help=("Show verbose logging, including all logs up to level INFO (equivalent to "
               "--logging-level=20)")),
-        CommandOption("--logging-level", default=None, type=int,
-          help="Set logging to a specific numeric level.")
+        CommandOption("--logging-level", default=None, type=int, metavar="numeric_level",
+          help="Set logging to a specific numeric level, using the standard python log-levels.")
     ]
 
   def before_dispatch(self, raw_args):

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/9534ea30/src/test/python/apache/aurora/client/cli/test_help.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_help.py b/src/test/python/apache/aurora/client/cli/test_help.py
index f73c8a3..551c9f9 100644
--- a/src/test/python/apache/aurora/client/cli/test_help.py
+++ b/src/test/python/apache/aurora/client/cli/test_help.py
@@ -60,6 +60,35 @@ class TestHelp(unittest.TestCase):
       assert '==Commands for jobs' in self.transcript
       assert '==Commands for quotas' in self.transcript
 
+  def test_usage_string_includes_plugin_options(self):
+    plugin_options = []
+    for plugin in self.cmd.plugins:
+      if plugin.get_options() is not None:
+        plugin_options += [p for p in plugin.get_options()]
+    with patch('apache.aurora.client.cli.client.AuroraCommandLine.print_out',
+        side_effect=self.mock_print):
+      for noun in self.cmd.registered_nouns:
+        for verb in self.cmd.nouns.get(noun).verbs.keys():
+          self.transcript = []
+          self.cmd.execute(['help', noun, verb])
+          for opt in plugin_options:
+            assert any(opt.name in line for line in self.transcript)
+
+  def test_command_help_does_not_have_unset_str_metavars(self):
+    plugin_options = []
+    for plugin in self.cmd.plugins:
+      if plugin.get_options() is not None:
+        plugin_options += [p for p in plugin.get_options()]
+    with patch('apache.aurora.client.cli.client.AuroraCommandLine.print_out',
+               side_effect=self.mock_print):
+      for noun in self.cmd.registered_nouns:
+        for verb in self.cmd.nouns.get(noun).verbs.keys():
+          self.transcript = []
+          self.cmd.execute(['help', noun, verb])
+          print(self.transcript)
+          for opt in plugin_options:
+            assert not any(line.endswith('=str') for line in self.transcript)
+
   def test_help_noun(self):
     with patch('apache.aurora.client.cli.client.AuroraCommandLine.print_out',
         side_effect=self.mock_print):