test(backend): update service tests
- test_orchestrator_service.py: update orchestrator service tests - test_settings_persistence.py: update settings persistence tests - test_user_agent_service.py: update user agent service tests
This commit is contained in:
@@ -177,3 +177,72 @@ def test_user_agent_draft_returns_structured_payload() -> None:
|
||||
assert response.draft_payload is not None
|
||||
assert response.draft_payload.confirmation_required is True
|
||||
assert "待人工确认" in response.answer
|
||||
|
||||
|
||||
def test_user_agent_builds_review_payload_for_multi_document_expense_flow() -> None:
|
||||
session_factory = build_session_factory()
|
||||
with session_factory() as db:
|
||||
ontology = SemanticOntologyService(db).parse(
|
||||
OntologyParseRequest(
|
||||
query="我昨天去上海出差,还请客户A吃饭,帮我生成报销草稿",
|
||||
user_id="pytest",
|
||||
context_json={
|
||||
"attachment_names": ["机票行程单.png", "餐饮发票.jpg"],
|
||||
"attachment_count": 2,
|
||||
"ocr_documents": [
|
||||
{
|
||||
"filename": "机票行程单.png",
|
||||
"summary": "机票行程单 上海-北京 金额 680 元",
|
||||
"text": "机票行程单 上海-北京 金额 680 元",
|
||||
"avg_score": 0.93,
|
||||
"warnings": [],
|
||||
},
|
||||
{
|
||||
"filename": "餐饮发票.jpg",
|
||||
"summary": "餐饮发票 客户招待 金额 320 元",
|
||||
"text": "餐饮发票 客户招待 金额 320 元",
|
||||
"avg_score": 0.91,
|
||||
"warnings": [],
|
||||
},
|
||||
],
|
||||
},
|
||||
)
|
||||
)
|
||||
response = UserAgentService(db).respond(
|
||||
UserAgentRequest(
|
||||
run_id=ontology.run_id,
|
||||
user_id="pytest",
|
||||
message="我昨天去上海出差,还请客户A吃饭,帮我生成报销草稿",
|
||||
ontology=ontology,
|
||||
context_json={
|
||||
"name": "张三",
|
||||
"attachment_names": ["机票行程单.png", "餐饮发票.jpg"],
|
||||
"attachment_count": 2,
|
||||
"ocr_documents": [
|
||||
{
|
||||
"filename": "机票行程单.png",
|
||||
"summary": "机票行程单 上海-北京 金额 680 元",
|
||||
"text": "机票行程单 上海-北京 金额 680 元",
|
||||
"avg_score": 0.93,
|
||||
"warnings": [],
|
||||
},
|
||||
{
|
||||
"filename": "餐饮发票.jpg",
|
||||
"summary": "餐饮发票 客户招待 金额 320 元",
|
||||
"text": "餐饮发票 客户招待 金额 320 元",
|
||||
"avg_score": 0.91,
|
||||
"warnings": [],
|
||||
},
|
||||
],
|
||||
},
|
||||
tool_payload={"draft_only": True, "claim_no": "EXP-202605-009", "status": "draft"},
|
||||
)
|
||||
)
|
||||
|
||||
assert response.review_payload is not None
|
||||
assert len(response.review_payload.document_cards) == 2
|
||||
assert len(response.review_payload.claim_groups) == 2
|
||||
assert any(
|
||||
item.action_type == "split_claims"
|
||||
for item in response.review_payload.confirmation_actions
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user