Files
Test-task/tests/test_app.py
T

29 lines
1.2 KiB
Python

from pathlib import Path
from streamlit.testing.v1 import AppTest
def test_manager_reviews_and_saves(tmp_path, monkeypatch):
monkeypatch.setenv("LEADS_FILE", str(tmp_path / "leads.xlsx"))
app = AppTest.from_file(
str(Path(__file__).resolve().parents[1] / "app.py"), default_timeout=30
).run()
app.radio(key="mode").set_value("DEMO").run()
app.button(key="process").click().run()
assert app.error
app.text_area(key="lead").set_value("Течёт стиральная машина, вода на полу").run()
app.button(key="process").click().run()
assert app.selectbox[0].value == "urgent"
app.selectbox[0].set_value("normal").run()
app.text_area[1].set_value("Уточните модель машины.").run()
app.button(key="save").click().run()
assert not app.exception
from src.storage import snapshot
rows, content = snapshot(tmp_path / "leads.xlsx")
assert rows[0]["Категория"] == "Не срочно"
assert rows[0]["Черновик ответа"] == "Уточните модель машины."
assert rows[0]["Режим обработки"] == "DEMO"
assert content.startswith(b"PK")
assert not any(button.key == "save" for button in app.button)