Jelajahi Sumber

Add assertions that completion stops after group:*

Mike Naberezny 11 tahun lalu
induk
melakukan
754b179723
3 mengubah file dengan 6 tambahan dan 2 penghapusan
  1. 1 1
      CHANGES.txt
  2. 1 1
      supervisor/supervisorctl.py
  3. 4 0
      supervisor/tests/test_supervisorctl.py

+ 1 - 1
CHANGES.txt

@@ -39,7 +39,7 @@
   returning a BAD_NAME fault.
   returning a BAD_NAME fault.
 
 
 - Tab completion in ``supervisorctl`` has been improved and now works for
 - Tab completion in ``supervisorctl`` has been improved and now works for
-  more cases.  Thanks to Mathieu Longtin for the initial patch.
+  more cases.  Thanks to Mathieu Longtin and Marc Abramowitz for the patches.
 
 
 3.0 (2013-07-30)
 3.0 (2013-07-30)
 ----------------
 ----------------

+ 1 - 1
supervisor/supervisorctl.py

@@ -1163,8 +1163,8 @@ def main(args=None, options=None):
             import readline
             import readline
             delims = readline.get_completer_delims()
             delims = readline.get_completer_delims()
             delims = delims.replace(':', '') # "group:process" as one word
             delims = delims.replace(':', '') # "group:process" as one word
+            delims = delims.replace('*', '') # "group:*" as one word
             delims = delims.replace('-', '') # names with "-" as one word
             delims = delims.replace('-', '') # names with "-" as one word
-            delims = delims.replace('*', '') # "group:process" as one word
             readline.set_completer_delims(delims)
             readline.set_completer_delims(delims)
 
 
             if options.history_file:
             if options.history_file:

+ 4 - 0
supervisor/tests/test_supervisorctl.py

@@ -194,6 +194,8 @@ class ControllerTests(unittest.TestCase):
         self.assertEqual(result, 'baz:baz_01 ')
         self.assertEqual(result, 'baz:baz_01 ')
         result = controller.complete('', 3, line='start ')
         result = controller.complete('', 3, line='start ')
         self.assertEqual(result, 'baz:* ')
         self.assertEqual(result, 'baz:* ')
+        result = controller.complete('', 4, line='start ')
+        self.assertEqual(result, None)
 
 
     def test_complete_start_no_colon(self):
     def test_complete_start_no_colon(self):
         options = DummyClientOptions()
         options = DummyClientOptions()
@@ -214,6 +216,8 @@ class ControllerTests(unittest.TestCase):
         self.assertEqual(result, 'foo:foo ')
         self.assertEqual(result, 'foo:foo ')
         result = controller.complete('foo:', 1, line='start foo:')
         result = controller.complete('foo:', 1, line='start foo:')
         self.assertEqual(result, 'foo:* ')
         self.assertEqual(result, 'foo:* ')
+        result = controller.complete('foo:', 2, line='start foo:')
+        self.assertEqual(result, None)
 
 
     def test_complete_start_uncompletable(self):
     def test_complete_start_uncompletable(self):
         options = DummyClientOptions()
         options = DummyClientOptions()