Files
aio-01d4-stu/Last3Mon/78/tcheck/tests/test_app.py
T

33 lines
1.3 KiB
Python

import json
from types import SimpleNamespace
from tcheck import checks, load
from tcheck.app import CheckApp
from conftest import DATA
def make(tmp_path):
rows, _ = load.read_rows(str(DATA / "employees.csv"))
schema = json.loads((DATA / "schemas" / "employee.json").read_text())
args = SimpleNamespace(file=str(DATA / "employees.csv"), out=str(tmp_path / "clean.csv"))
return CheckApp(args, rows, schema, checks.check(rows, schema, "HR-1"))
async def test_tabs_filter_and_export(tmp_path):
app = make(tmp_path)
async with app.run_test() as pilot:
assert "9 rows · valid 4" in str(app.query_one("#top").render())
assert app.query_one("#problem-table").row_count == 5
assert app.query_one("#code-table").row_count == 5
assert app.query_one("#clean-table").row_count == 4
await pilot.press("slash")
await pilot.pause()
for key in "email":
await pilot.press(key)
await pilot.press("enter")
assert app.query_one("#problem-table").row_count == 1
await pilot.press("escape")
assert app.query_one("#problem-table").row_count == 5
await pilot.press("e")
assert app.exported.endswith("clean.csv") and (tmp_path / "clean.csv").read_text().count("\n") == 5