diff options
| author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2024-09-06 12:04:11 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-06 12:04:11 (GMT) |
| commit | c787a5161ca147cb8f9867c3a61b7ab4edf6c2a7 (patch) | |
| tree | fb125fc68d39dcb2d9a22fc2c3e1a0e7452e34e5 /Lib/test/test_pyrepl/test_pyrepl.py | |
| parent | b221c5bba16d1406abbef13eba30b944bbcc92e1 (diff) | |
| download | cpython-c787a5161ca147cb8f9867c3a61b7ab4edf6c2a7.zip cpython-c787a5161ca147cb8f9867c3a61b7ab4edf6c2a7.tar.gz cpython-c787a5161ca147cb8f9867c3a61b7ab4edf6c2a7.tar.bz2 | |
[3.13] gh-119034, REPL: Change page up/down keys to search in history (GH-123607) (GH-123773)
Change <page up> and <page down> keys of the Python REPL to history
search forward/backward.
(cherry picked from commit 8311b11800509c975023e062e2c336f417c5e4c0)
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Ćukasz Langa <lukasz@langa.pl>
Diffstat (limited to 'Lib/test/test_pyrepl/test_pyrepl.py')
| -rw-r--r-- | Lib/test/test_pyrepl/test_pyrepl.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Lib/test/test_pyrepl/test_pyrepl.py b/Lib/test/test_pyrepl/test_pyrepl.py index d9d83c4..84030e0 100644 --- a/Lib/test/test_pyrepl/test_pyrepl.py +++ b/Lib/test/test_pyrepl/test_pyrepl.py @@ -676,6 +676,45 @@ class TestPyReplOutput(TestCase): self.assertEqual(output, "c\x1d") self.assertEqual(clean_screen(reader.screen), "c") + def test_history_search_backward(self): + # Test <page up> history search backward with "imp" input + events = itertools.chain( + code_to_events("import os\n"), + code_to_events("imp"), + [ + Event(evt='key', data='page up', raw=bytearray(b'\x1b[5~')), + Event(evt="key", data="\n", raw=bytearray(b"\n")), + ], + ) + + # fill the history + reader = self.prepare_reader(events) + multiline_input(reader) + + # search for "imp" in history + output = multiline_input(reader) + self.assertEqual(output, "import os") + self.assertEqual(clean_screen(reader.screen), "import os") + + def test_history_search_backward_empty(self): + # Test <page up> history search backward with an empty input + events = itertools.chain( + code_to_events("import os\n"), + [ + Event(evt='key', data='page up', raw=bytearray(b'\x1b[5~')), + Event(evt="key", data="\n", raw=bytearray(b"\n")), + ], + ) + + # fill the history + reader = self.prepare_reader(events) + multiline_input(reader) + + # search backward in history + output = multiline_input(reader) + self.assertEqual(output, "import os") + self.assertEqual(clean_screen(reader.screen), "import os") + class TestPyReplCompleter(TestCase): def prepare_reader(self, events, namespace): |
