summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-06-14 05:46:17 (GMT)
committerMartin Panter <vadmium+py@gmail.com>2016-06-14 05:46:17 (GMT)
commit8e4b7ac7fee89eab26440eee5ce322d41e235fa1 (patch)
treef32121af9467c032715e5e8216c2c4ab6fd9f315
parent17f0e61891da79840e34ea1c3311b7189bbb8f29 (diff)
parent056f76d9782d54d069b7f6e967705f6fec4b4935 (diff)
downloadcpython-8e4b7ac7fee89eab26440eee5ce322d41e235fa1.zip
cpython-8e4b7ac7fee89eab26440eee5ce322d41e235fa1.tar.gz
cpython-8e4b7ac7fee89eab26440eee5ce322d41e235fa1.tar.bz2
Issue #16182: Merge test_readline from 3.5
-rw-r--r--Lib/test/test_readline.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py
index 20b2b67..1c1e81c 100644
--- a/Lib/test/test_readline.py
+++ b/Lib/test/test_readline.py
@@ -15,6 +15,8 @@ from test.support.script_helper import assert_python_ok
# Skip tests if there is no readline module
readline = import_module('readline')
+is_editline = readline.__doc__ and "libedit" in readline.__doc__
+
@unittest.skipUnless(hasattr(readline, "clear_history"),
"The history update test cannot be run because the "
"clear_history method is not available.")
@@ -99,14 +101,17 @@ class TestHistoryManipulation (unittest.TestCase):
self.addCleanup(os.remove, TESTFN)
readline.clear_history()
readline.read_history_file(TESTFN)
+ if is_editline:
+ # An add_history() call seems to be required for get_history_
+ # item() to register items from the file
+ readline.add_history("dummy")
self.assertEqual(readline.get_history_item(1), "entrée 1")
self.assertEqual(readline.get_history_item(2), "entrée 22")
class TestReadline(unittest.TestCase):
- @unittest.skipIf(readline._READLINE_VERSION < 0x0600
- and "libedit" not in readline.__doc__,
+ @unittest.skipIf(readline._READLINE_VERSION < 0x0600 and not is_editline,
"not supported in this library version")
def test_init(self):
# Issue #19884: Ensure that the ANSI sequence "\033[1034h" is not
@@ -142,7 +147,9 @@ print("History length:", readline.get_current_history_length())
if readline.__doc__ and "libedit" in readline.__doc__:
readline.parse_and_bind(r'bind ^B ed-prev-char')
readline.parse_and_bind(r'bind "\t" rl_complete')
- readline.parse_and_bind('bind -s ^A "|t\xEB[after]"')
+ # The insert_line() call via pre_input_hook() does nothing with Editline,
+ # so include the extra text that would have been inserted here
+ readline.parse_and_bind('bind -s ^A "[\xEFnserted]|t\xEB[after]"')
else:
readline.parse_and_bind(r'Control-b: backward-char')
readline.parse_and_bind(r'"\t": complete')
@@ -188,8 +195,9 @@ print("history", ascii(readline.get_history_item(1)))
self.assertIn(b"text 't\\xeb'\r\n", output)
self.assertIn(b"line '[\\xefnserted]|t\\xeb[after]'\r\n", output)
self.assertIn(b"indexes 11 13\r\n", output)
- self.assertIn(b"substitution 't\\xeb'\r\n", output)
- self.assertIn(b"matches ['t\\xebnt', 't\\xebxt']\r\n", output)
+ if not is_editline: # display() hook not called under Editline
+ self.assertIn(b"substitution 't\\xeb'\r\n", output)
+ self.assertIn(b"matches ['t\\xebnt', 't\\xebxt']\r\n", output)
expected = br"'[\xefnserted]|t\xebxt[after]'"
self.assertIn(b"result " + expected + b"\r\n", output)
self.assertIn(b"history " + expected + b"\r\n", output)