tests/test_chatbox.py
Rama main · réplica de lectura del repositorio original.
"""端到端:聊天框点『提问』→ 真实跑智能体 → 显示答案(需要 claude,标 integration)。"""
from importlib.resources import files
import pytest
from streamlit.testing.v1 import AppTest
pytestmark = pytest.mark.stack # 需要可达的 StarRocks/Postgres 栈;不可达自动跳过
APP = str(files("dm.app") / "app.py")
@pytest.mark.integration
def test_chatbox_drives_agent():
at = AppTest.from_file(APP).run(timeout=60)
at.sidebar.radio[0].set_value("💬 智能体问答").run(timeout=60)
at.text_input[0].set_value("数据仓库里一共有多少种物料?").run(timeout=60)
btns = [b for b in at.button if b.label == "提问"]
assert btns, "未找到『提问』按钮"
btns[0].click().run(timeout=240)
assert not at.exception, f"聊天框异常: {list(at.exception)}"
mds = [str(m.value) for m in at.markdown]
assert any(("50" in m or "物料" in m) for m in mds)