[Python-checkins] cpython (merge 3.5 -> default): Merge 3.5

yury.selivanov python-checkins at python.org
Thu Feb 4 14:08:30 EST 2016


https://hg.python.org/cpython/rev/d00a1c46fff7
changeset:   100159:d00a1c46fff7
parent:      100157:7fb10bdbe01b
parent:      100158:980ea968444c
user:        Yury Selivanov <yselivanov at sprymix.com>
date:        Thu Feb 04 14:08:23 2016 -0500
summary:
  Merge 3.5

files:
  Lib/rlcompleter.py           |  12 ++++++++----
  Lib/test/test_rlcompleter.py |   1 +
  2 files changed, 9 insertions(+), 4 deletions(-)


diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py
--- a/Lib/rlcompleter.py
+++ b/Lib/rlcompleter.py
@@ -75,9 +75,12 @@
 
         if not text.strip():
             if state == 0:
-                readline.insert_text('\t')
-                readline.redisplay()
-                return ''
+                if _readline_available:
+                    readline.insert_text('\t')
+                    readline.redisplay()
+                    return ''
+                else:
+                    return '\t'
             else:
                 return None
 
@@ -192,10 +195,11 @@
 try:
     import readline
 except ImportError:
-    pass
+    _readline_available = False
 else:
     readline.set_completer(Completer().complete)
     # Release references early at shutdown (the readline module's
     # contents are quasi-immortal, and the completer function holds a
     # reference to globals).
     atexit.register(lambda: readline.set_completer(None))
+    _readline_available = True
diff --git a/Lib/test/test_rlcompleter.py b/Lib/test/test_rlcompleter.py
--- a/Lib/test/test_rlcompleter.py
+++ b/Lib/test/test_rlcompleter.py
@@ -101,6 +101,7 @@
         completer = rlcompleter.Completer(dict(f=Foo()))
         self.assertEqual(completer.complete('f.', 0), 'f.bar')
 
+    @unittest.mock.patch('rlcompleter._readline_available', False)
     def test_complete(self):
         completer = rlcompleter.Completer()
         self.assertEqual(completer.complete('', 0), '\t')

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list