summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pyrepl.py
diff options
context:
space:
mode:
authorPablo Galindo Salgado <Pablogsal@gmail.com>2024-05-07 16:01:49 (GMT)
committerGitHub <noreply@github.com>2024-05-07 16:01:49 (GMT)
commita94ac566285662b214ca97d74481e07e51ccd7d9 (patch)
tree23f91530e49c539081053dbb0ba63e90a6677414 /Lib/test/test_pyrepl.py
parent26bab423fb6e08f9df23c5c8f55e3d019150c454 (diff)
downloadcpython-a94ac566285662b214ca97d74481e07e51ccd7d9.zip
cpython-a94ac566285662b214ca97d74481e07e51ccd7d9.tar.gz
cpython-a94ac566285662b214ca97d74481e07e51ccd7d9.tar.bz2
gh-111201: Allow pasted code to contain multiple statements in the REPL (#118712)
Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
Diffstat (limited to 'Lib/test/test_pyrepl.py')
-rw-r--r--Lib/test/test_pyrepl.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/Lib/test/test_pyrepl.py b/Lib/test/test_pyrepl.py
index bb9e36b..c8990b6 100644
--- a/Lib/test/test_pyrepl.py
+++ b/Lib/test/test_pyrepl.py
@@ -23,6 +23,7 @@ from _pyrepl.console import Console, Event
from _pyrepl.readline import ReadlineAlikeReader, ReadlineConfig
from _pyrepl.simple_interact import _strip_final_indent
from _pyrepl.unix_eventqueue import EventQueue
+from _pyrepl.simple_interact import InteractiveColoredConsole
def more_lines(unicodetext, namespace=None):
@@ -830,7 +831,6 @@ class TestPasteEvent(TestCase):
' else:\n'
' pass\n'
)
- # fmt: on
output_code = (
'def a():\n'
@@ -841,8 +841,8 @@ class TestPasteEvent(TestCase):
'\n'
' else:\n'
' pass\n'
- '\n'
)
+ # fmt: on
paste_start = "\x1b[200~"
paste_end = "\x1b[201~"
@@ -857,6 +857,22 @@ class TestPasteEvent(TestCase):
output = multiline_input(reader)
self.assertEqual(output, output_code)
+ def test_bracketed_paste_single_line(self):
+ input_code = "oneline"
+
+ paste_start = "\x1b[200~"
+ paste_end = "\x1b[201~"
+
+ events = itertools.chain(
+ code_to_events(paste_start),
+ code_to_events(input_code),
+ code_to_events(paste_end),
+ code_to_events("\n"),
+ )
+ reader = self.prepare_reader(events)
+ output = multiline_input(reader)
+ self.assertEqual(output, input_code)
+
class TestReader(TestCase):
def assert_screen_equals(self, reader, expected):
@@ -986,5 +1002,5 @@ class TestReader(TestCase):
self.assert_screen_equals(reader, "")
-if __name__ == "__main__":
+if __name__ == '__main__':
unittest.main()