From 3f3698900498329b456542b8ac0e61182dde6eb4 Mon Sep 17 00:00:00 2001 From: TomJGooding <101601846+TomJGooding@users.noreply.github.com> Date: Fri, 29 Sep 2023 15:22:57 +0100 Subject: [PATCH] feat(input): add clear method (#3430) * feat(input): add clear method * update changelog * fix method case in changelog --- CHANGELOG.md | 1 + src/textual/widgets/_input.py | 4 ++++ tests/input/test_input_clear.py | 16 ++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 tests/input/test_input_clear.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 41d543fc87..a52f8df41d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Added - `OutOfBounds` exception to be raised by `Pilot` https://github.com/Textualize/textual/pull/3360 +- Added `Input.clear` method https://github.com/Textualize/textual/pull/3430 ### Changed diff --git a/src/textual/widgets/_input.py b/src/textual/widgets/_input.py index b92161e504..c7603297ea 100644 --- a/src/textual/widgets/_input.py +++ b/src/textual/widgets/_input.py @@ -481,6 +481,10 @@ def insert_text_at_cursor(self, text: str) -> None: self.value = f"{before}{text}{after}" self.cursor_position += len(text) + def clear(self) -> None: + """Clear the input.""" + self.value = "" + def action_cursor_left(self) -> None: """Move the cursor one position to the left.""" self.cursor_position -= 1 diff --git a/tests/input/test_input_clear.py b/tests/input/test_input_clear.py new file mode 100644 index 0000000000..07abff1a76 --- /dev/null +++ b/tests/input/test_input_clear.py @@ -0,0 +1,16 @@ +from textual.app import App, ComposeResult +from textual.widgets import Input + + +class InputApp(App): + def compose(self) -> ComposeResult: + yield Input("Hello, World!") + + +async def test_input_clear(): + async with InputApp().run_test() as pilot: + input_widget = pilot.app.query_one(Input) + assert input_widget.value == "Hello, World!" + input_widget.clear() + await pilot.pause() + assert input_widget.value == ""