Files
group_fqcd_jr/tests/unit/service/test_risk_search_result.py
T

31 lines
1.2 KiB
Python

from app.service.risk_tools import build_alert_search_result
def test_search_result_summary_contains_all_customers_and_products() -> None:
items = [
{
"alert_no": f"ALERT-{index:03d}",
"customer_no": f"CUST-{index % 2 + 1:03d}",
"customer_name": "张*" if index % 2 else "李*",
"product_code": f"P-{index % 3 + 1:03d}",
"product_name": f"产品{index % 3 + 1}",
"risk_level": "低",
"rule_codes": ["RW-018"],
"evidence_summary": "测试证据",
"disposition_hint": {"verdict": "可考虑放行"},
}
for index in range(12)
]
result = build_alert_search_result(items, {"risk_level": "低"})
assert result["total"] == 12
assert len(result["summary"]["customer_groups"]) == 2
assert len(result["summary"]["product_groups"]) == 3
assert result["summary"]["complete"] is True
assert result["summary"]["disposition_counts"] == {"可考虑放行": 12}
assert len(result["items"]) == 12
assert result["field_meanings"]["customer_no"] == "客户编号"
assert result["field_meanings"]["risk_level"] == "风险等级"
assert result["field_meanings"]["disposition_hint"] == "列表级只读研判建议"