From 1b61a95c7025160cbbcb74cf9562a3b057afd3e6 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 10 Nov 2022 16:22:52 +0000 Subject: [PATCH] table tests --- tests/test_table.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/test_table.py diff --git a/tests/test_table.py b/tests/test_table.py new file mode 100644 index 000000000..8369efdef --- /dev/null +++ b/tests/test_table.py @@ -0,0 +1,45 @@ +import asyncio + +from textual.app import App, ComposeResult +from textual.widgets import DataTable + + +class TableApp(App): + def compose(self) -> ComposeResult: + yield DataTable() + + +async def test_table_clear() -> None: + """Check DataTable.clear""" + + app = TableApp() + async with app.run_test() as pilot: + table = app.query_one(DataTable) + table.add_columns("foo", "bar") + assert table.row_count == 0 + table.add_row("Hello", "World!") + assert table.data == {0: ["Hello", "World!"]} + assert table.row_count == 1 + table.clear() + assert table.data == {} + assert table.row_count == 0 + + +async def test_table_add_row() -> None: + + app = TableApp() + async with app.run_test(): + table = app.query_one(DataTable) + table.add_columns("foo", "bar") + + assert table.columns[0].width == 3 + assert table.columns[1].width == 3 + table.add_row("Hello", "World!") + await asyncio.sleep(0) + assert table.columns[0].content_width == 5 + assert table.columns[1].content_width == 6 + + table.add_row("Hello World!!!", "fo") + await asyncio.sleep(0) + assert table.columns[0].content_width == 14 + assert table.columns[1].content_width == 6