Issue #23441: rcompleter now prints a tab character instead of displaying
authorBerker Peksag <berker.peksag@gmail.com>
Mon, 27 Jul 2015 21:06:31 +0000 (00:06 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Mon, 27 Jul 2015 21:06:31 +0000 (00:06 +0300)
possible completions for an empty word.

Initial patch by Martin Sekera.

Lib/rlcompleter.py
Lib/test/test_rlcompleter.py
Misc/NEWS

index 94f9341beef0828c6fbebae484878251260cf9dc..d517c0e2d39d24270a36c89ae5603d33b5c80dc4 100644 (file)
@@ -73,6 +73,12 @@ class Completer:
         if self.use_main_ns:
             self.namespace = __main__.__dict__
 
+        if not text.strip():
+            if state == 0:
+                return '\t'
+            else:
+                return None
+
         if state == 0:
             if "." in text:
                 self.matches = self.attr_matches(text)
index 11a7bd2f719ca9ff21c378dd43b5f02699f6b4fb..2da7fce3f03f2da38503a81cfd07560064d5d1d9 100644 (file)
@@ -1,4 +1,3 @@
-from test import support
 import unittest
 import builtins
 import rlcompleter
@@ -65,9 +64,14 @@ class TestRlcompleter(unittest.TestCase):
                          ['egg.{}('.format(x) for x in dir(str)
                           if x.startswith('s')])
 
-def test_main():
-    support.run_unittest(TestRlcompleter)
+    def test_complete(self):
+        completer = rlcompleter.Completer()
+        self.assertEqual(completer.complete('', 0), '\t')
+        self.assertEqual(completer.complete('a', 0), 'and')
+        self.assertEqual(completer.complete('a', 1), 'as')
+        self.assertEqual(completer.complete('as', 2), 'assert')
+        self.assertEqual(completer.complete('an', 0), 'and')
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 2755a3926e90ab1c38d7d017ab19502bb4a7ef9a..9bacb3ab03e84518f1232ebaef8e75ba8cd9ff47 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -66,6 +66,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #23441: rcompleter now prints a tab character instead of displaying
+  possible completions for an empty word.  Initial patch by Martin Sekera.
+
 - Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
 
 - Issue #24683: Fixed crashes in _json functions called with arguments of