diff --git a/tests/test_pilot.py b/tests/test_pilot.py new file mode 100644 index 000000000..2ca527895 --- /dev/null +++ b/tests/test_pilot.py @@ -0,0 +1,23 @@ +from string import punctuation + +from textual import events +from textual.app import App + +KEY_CHARACTERS_TO_TEST = "akTW03" + punctuation.replace("_", "") +"""Test some "simple" characters (letters + digits) and all punctuation. +Ignore the underscore because that is an alias to add a pause in the pilot. +""" + + +async def test_pilot_press_ascii_chars(): + """Test that the pilot can press most ASCII characters as keys.""" + keys_pressed = [] + + class TestApp(App[None]): + def on_key(self, event: events.Key) -> None: + keys_pressed.append(event.character) + + async with TestApp().run_test() as pilot: + for char in KEY_CHARACTERS_TO_TEST: + await pilot.press(char) + assert keys_pressed[-1] == char