Skip to content

Commit

Permalink
feat(input): add clear method (#3430)
Browse files Browse the repository at this point in the history
* feat(input): add clear method

* update changelog

* fix method case in changelog
  • Loading branch information
TomJGooding authored Sep 29, 2023
1 parent dee7459 commit 3f36989
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 4 additions & 0 deletions src/textual/widgets/_input.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 16 additions & 0 deletions tests/input/test_input_clear.py
Original file line number Diff line number Diff line change
@@ -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 == ""

0 comments on commit 3f36989

Please sign in to comment.