test(backend): update service tests

- test_ontology_service.py: update ontology service tests
- test_orchestrator_service.py: update orchestrator service tests
- test_user_agent_service.py: update user agent service tests
This commit is contained in:
caoxiaozhu
2026-05-12 15:13:57 +00:00
parent 4d9b071e37
commit bc593d4473
3 changed files with 78 additions and 6 deletions

View File

@@ -144,7 +144,7 @@ def test_user_agent_guides_implicit_expense_draft_request() -> None:
assert response.review_payload is not None
assert response.answer == response.review_payload.body_message
assert response.review_payload.intent_summary.startswith("系统识别出您想要报销业务招待费。")
assert response.review_payload.intent_summary.startswith("我理解你这次想报销业务招待费。")
assert response.review_payload.missing_slots == ["客户名称", "参与人员", "票据附件"]
assert [item.action_type for item in response.review_payload.confirmation_actions] == [
"cancel_review",
@@ -154,11 +154,42 @@ def test_user_agent_guides_implicit_expense_draft_request() -> None:
slot_map = {item.key: item for item in response.review_payload.slot_cards}
assert slot_map["expense_type"].value == "业务招待费"
assert slot_map["time_range"].value == f"{today}(原文:今天)"
assert slot_map["time_range"].value == today
assert slot_map["time_range"].raw_value == "今天"
assert slot_map["location"].value == "客户现场"
assert slot_map["amount"].value == "1000.00元"
def test_user_agent_guides_narrative_with_day_before_yesterday() -> None:
session_factory = build_session_factory()
with session_factory() as db:
ontology = SemanticOntologyService(db).parse(
OntologyParseRequest(
query="我前天请客户吃饭花了200元",
user_id="pytest",
context_json={
"client_now_iso": "2026-05-12T16:30:00.000Z",
"client_timezone_offset_minutes": -480,
},
)
)
response = UserAgentService(db).respond(
UserAgentRequest(
run_id=ontology.run_id,
user_id="pytest",
message="我前天请客户吃饭花了200元",
ontology=ontology,
tool_payload={"draft_only": True},
)
)
assert response.review_payload is not None
slot_map = {item.key: item for item in response.review_payload.slot_cards}
assert slot_map["time_range"].raw_value == "前天"
assert slot_map["time_range"].value == "2026-05-11"
assert "时间2026-05-11" in response.review_payload.intent_summary
def test_user_agent_risk_response_includes_rule_citations() -> None:
session_factory = build_session_factory()
with session_factory() as db:
@@ -286,5 +317,7 @@ def test_user_agent_builds_review_payload_for_multi_document_expense_flow() -> N
"save_draft",
]
assert any(item.scene_label == "业务招待费" for item in response.review_payload.document_cards)
assert "建议拆分为 2 张报销单" in response.review_payload.intent_summary
assert f"{yesterday}(原文:昨天)" in response.review_payload.intent_summary
assert f"时间:{yesterday}" in response.review_payload.intent_summary
slot_map = {item.key: item for item in response.review_payload.slot_cards}
assert slot_map["time_range"].value == yesterday
assert slot_map["time_range"].raw_value == "昨天"