mirror of https://github.com/python/cpython
gh-118682: Revert forcing str commands, allow class commands in pyrepl (#118709)
This commit is contained in:
parent
71080b8a0f
commit
e5413ec783
|
@ -568,12 +568,16 @@ class Reader:
|
|||
"""`cmd` is a tuple of "event_name" and "event", which in the current
|
||||
implementation is always just the "buffer" which happens to be a list
|
||||
of single-character strings."""
|
||||
assert isinstance(cmd[0], str)
|
||||
|
||||
trace("received command {cmd}", cmd=cmd)
|
||||
if isinstance(cmd[0], str):
|
||||
command_type = self.commands.get(cmd[0], commands.invalid_command)
|
||||
command = command_type(self, *cmd) # type: ignore[arg-type]
|
||||
elif isinstance(cmd[0], type):
|
||||
command_type = cmd[0]
|
||||
else:
|
||||
return # nothing to do
|
||||
|
||||
command = command_type(self, *cmd) # type: ignore[arg-type]
|
||||
command.do()
|
||||
|
||||
self.after_command(command)
|
||||
|
|
|
@ -976,6 +976,15 @@ class TestReader(TestCase):
|
|||
reader.setpos_from_xy(0, 1)
|
||||
self.assertEqual(reader.pos, 9)
|
||||
|
||||
def test_up_arrow_after_ctrl_r(self):
|
||||
events = iter([
|
||||
Event(evt='key', data='\x12', raw=bytearray(b'\x12')),
|
||||
Event(evt='key', data='up', raw=bytearray(b'\x1bOA')),
|
||||
])
|
||||
|
||||
reader, _ = handle_all_events(events)
|
||||
self.assert_screen_equals(reader, "")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
Loading…
Reference in New Issue