29 lines
1.2 KiB
Python
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)
|