Skip to content

Commit 2435b19

Browse files
committed
Fix tests
1 parent e60bfe3 commit 2435b19

1 file changed

Lines changed: 32 additions & 13 deletions

File tree

‎Lib/test/test_pyrepl/test_unix_console.py‎

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from unittest import TestCase
1616
from unittest.mock import MagicMock, call, patch, ANY, Mock
1717

18-
from .support import handle_all_events, code_to_events, more_lines
18+
from .support import handle_all_events, code_to_events, more_lines, prepare_reader
1919

2020
try:
2121
from _pyrepl.console import Event
@@ -248,20 +248,39 @@ def test_cursor_up_down(self, _os_write):
248248
con.restore()
249249

250250
def test_cursor_back_write(self, _os_write):
251-
events = itertools.chain(
252-
code_to_events("1"),
253-
[Event(evt="key", data="left", raw=bytearray(b"\x1bOD"))],
254-
code_to_events("2"),
251+
insert_char = b"<insert-char>"
252+
events = iter(
253+
itertools.chain(
254+
code_to_events("1"),
255+
[Event(evt="key", data="left", raw=bytearray(b"\x1bOD"))],
256+
code_to_events("2"),
257+
)
255258
)
256-
_, con = handle_events_unix_console(events)
257-
_os_write.assert_any_call(ANY, b"1")
259+
con = unix_console(events, ich1=insert_char)
260+
reader = prepare_reader(con)
261+
262+
_os_write.reset_mock()
263+
reader.handle1()
264+
append_writes = [write.args[1] for write in _os_write.call_args_list]
265+
self.assertIn(b"1", append_writes)
266+
self.assertFalse(any(insert_char in output for output in append_writes))
267+
self.assertEqual(reader.rendered_screen.screen_lines, ("1",))
268+
269+
_os_write.reset_mock()
270+
reader.handle1()
258271
_os_write.assert_any_call(ANY, TERM_CAPABILITIES["cub"] + b":1")
259-
_os_write.assert_any_call(ANY, b"2")
260-
self.assertIsNotNone(con.ich1)
261-
self.assertEqual(
262-
_os_write.mock_calls.count(call(ANY, con.ich1)),
263-
1,
264-
)
272+
273+
_os_write.reset_mock()
274+
reader.handle1()
275+
insertion_writes = [write.args[1] for write in _os_write.call_args_list]
276+
insert_writes = [
277+
index
278+
for index, output in enumerate(insertion_writes)
279+
if insert_char in output
280+
]
281+
self.assertEqual(len(insert_writes), 1)
282+
self.assertEqual(insertion_writes[insert_writes[0] + 1], b"2")
283+
self.assertEqual(reader.rendered_screen.screen_lines, ("21",))
265284
con.restore()
266285

267286
def test_multiline_function_move_up_short_terminal(self, _os_write):

0 commit comments

Comments
 (0)