V10.519 對齊 Webcrumbs host data 新覆蓋口徑
This commit is contained in:
@@ -57,6 +57,11 @@ def test_webcrumbs_host_data_api_allows_internal_key_when_login_disabled(monkeyp
|
||||
},
|
||||
"metadata": {
|
||||
"source": "competitor_intel_repository",
|
||||
"matched_count": 88,
|
||||
"fresh_match_count": 70,
|
||||
"fresh_match_rate": 79.5,
|
||||
"stale_match_count": 18,
|
||||
"pending_match_count": 612,
|
||||
"writes_database": False,
|
||||
"calls_llm": False,
|
||||
"fetches_external": False,
|
||||
@@ -81,6 +86,10 @@ def test_webcrumbs_host_data_api_allows_internal_key_when_login_disabled(monkeyp
|
||||
assert payload["success"] is True
|
||||
assert payload["data"] == seed_payload
|
||||
assert payload["metadata"]["source"] == "competitor_intel_repository"
|
||||
assert payload["metadata"]["fresh_match_count"] == 70
|
||||
assert payload["metadata"]["fresh_match_rate"] == 79.5
|
||||
assert payload["metadata"]["stale_match_count"] == 18
|
||||
assert payload["metadata"]["pending_match_count"] == 612
|
||||
assert payload["boundary"]["auth_required"] is True
|
||||
assert payload["boundary"]["writes_database"] is False
|
||||
assert payload["boundary"]["calls_llm"] is False
|
||||
|
||||
@@ -38,7 +38,14 @@ def test_webcrumbs_host_data_maps_price_alert_exact_rows(monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
svc,
|
||||
"fetch_competitor_coverage",
|
||||
lambda passed_engine: {"valid_matches": 88, "match_rate": 12.3},
|
||||
lambda passed_engine: {
|
||||
"valid_matches": 88,
|
||||
"match_rate": 12.3,
|
||||
"fresh_matches": 70,
|
||||
"fresh_match_rate": 79.5,
|
||||
"stale_matches": 18,
|
||||
"pending": 612,
|
||||
},
|
||||
)
|
||||
|
||||
payload = svc.build_webcrumbs_marketplace_host_data(engine=engine, limit=5)
|
||||
@@ -53,17 +60,31 @@ def test_webcrumbs_host_data_maps_price_alert_exact_rows(monkeypatch):
|
||||
assert payload["metadata"]["writes_database"] is False
|
||||
assert payload["metadata"]["calls_llm"] is False
|
||||
assert payload["metadata"]["fetches_external"] is False
|
||||
assert payload["metadata"]["matched_count"] == 88
|
||||
assert payload["metadata"]["coverage_rate"] == 12.3
|
||||
assert payload["metadata"]["fresh_match_count"] == 70
|
||||
assert payload["metadata"]["fresh_match_rate"] == 79.5
|
||||
assert payload["metadata"]["stale_match_count"] == 18
|
||||
assert payload["metadata"]["pending_match_count"] == 612
|
||||
assert all(row["freshness_status"] == "price_alert_exact" for row in payload["marketSnapshot"])
|
||||
|
||||
|
||||
def test_webcrumbs_host_data_uses_empty_state_without_risks(monkeypatch):
|
||||
monkeypatch.setattr(svc, "fetch_top_competitor_risks", lambda engine, limit: [])
|
||||
monkeypatch.setattr(svc, "fetch_competitor_coverage", lambda engine: {"valid_matches": 0})
|
||||
monkeypatch.setattr(
|
||||
svc,
|
||||
"fetch_competitor_coverage",
|
||||
lambda engine: {"valid_matches": 3, "fresh_matches": 1, "stale_matches": 2, "pending": 9},
|
||||
)
|
||||
|
||||
payload = svc.build_webcrumbs_marketplace_host_data(engine=object(), limit=5)
|
||||
|
||||
assert payload["marketSnapshot"][0]["freshness_status"] == "no_current_exact_risk"
|
||||
assert payload["aiCandidate"]["release_status"] == "blocked"
|
||||
assert payload["metadata"]["matched_count"] == 3
|
||||
assert payload["metadata"]["fresh_match_count"] == 1
|
||||
assert payload["metadata"]["stale_match_count"] == 2
|
||||
assert payload["metadata"]["pending_match_count"] == 9
|
||||
assert "非同款、單位價或變體候選" in payload["aiCandidate"]["thesis"]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user