Files

33 lines
1.2 KiB
Python

import tempfile
from genesis.chat.agent import ChatAgent
from genesis.server.service import GenesisService
from genesis.server.store import ProjectsStore, SessionStore
_tmp = tempfile.mkdtemp(prefix="genesis_ws_")
def _make_agent(sink):
store = SessionStore(db_path=f"{_tmp}/sessions.db")
projects = ProjectsStore(db_path=f"{_tmp}/projects.db")
svc = GenesisService(store=store, data_root="data", engine="fake", projects=projects)
return ChatAgent(service=svc, fake=True, engine="fake", progress_sink=sink)
def test_agent_emits_progress_events():
events = []
agent = _make_agent(events.append)
sid = agent.service.create_session("u1").session_id
agent._emit_progress(sid, {"step": "parse", "status": "ok", "detail": "解析完成"})
assert events and events[0]["type"] == "progress"
assert events[0]["step"] == "parse"
def test_agent_emits_error_event():
events = []
agent = _make_agent(events.append)
sid = agent.service.create_session("u1").session_id
agent._emit_error(sid, "解析失败:boom", "generate")
errs = [e for e in events if e["type"] == "error"]
assert errs and "boom" in errs[0]["detail"]