From aaf6114b37df5b86d605e396ac0547e5cac492ae Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Tue, 28 Jul 2015 00:06:31 +0300 Subject: Issue #23441: rcompleter now prints a tab character instead of displaying possible completions for an empty word. Initial patch by Martin Sekera. --- Lib/rlcompleter.py | 6 ++++++ Lib/test/test_rlcompleter.py | 12 ++++++++---- Misc/NEWS | 3 +++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py index 94f9341..d517c0e 100644 --- a/Lib/rlcompleter.py +++ b/Lib/rlcompleter.py @@ -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) diff --git a/Lib/test/test_rlcompleter.py b/Lib/test/test_rlcompleter.py index 11a7bd2..2da7fce 100644 --- a/Lib/test/test_rlcompleter.py +++ b/Lib/test/test_rlcompleter.py @@ -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() diff --git a/Misc/NEWS b/Misc/NEWS index 2755a39..9bacb3a 100644 --- 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 -- cgit v0.12