Kaynağa Gözat

Fix help for the "help" command

Mike Naberezny 11 yıl önce
ebeveyn
işleme
bfd6319449

+ 5 - 2
supervisor/supervisorctl.py

@@ -289,8 +289,11 @@ class Controller(cmd.Cmd):
             return results[state]
 
     def do_help(self, arg):
-        for plugin in self.options.plugins:
-            plugin.do_help(arg)
+        if arg.strip() == 'help':
+            self.help_help()
+        else:
+            for plugin in self.options.plugins:
+                plugin.do_help(arg)
 
     def help_help(self):
         self.output("help\t\tPrint a list of available actions")

+ 10 - 1
supervisor/tests/test_supervisorctl.py

@@ -129,11 +129,20 @@ class ControllerTests(unittest.TestCase):
         options = DummyClientOptions()
         controller = self._makeOne(options)
         controller.stdout = StringIO()
-        results = controller.do_help(None)
+        results = controller.do_help('')
         helpval = controller.stdout.getvalue()
         self.assertEqual(results, None)
         self.assertEqual(helpval, 'foo helped')
 
+    def test_do_help_for_help(self):
+        options = DummyClientOptions()
+        controller = self._makeOne(options)
+        controller.stdout = StringIO()
+        results = controller.do_help("help")
+        helpval = controller.stdout.getvalue()
+        self.assertEqual(results, None)
+        self.assertTrue("help\t\tPrint a list" in helpval)
+
     def test_get_supervisor_returns_serverproxy_supervisor_namespace(self):
         options = DummyClientOptions()
         controller = self._makeOne(options)