V10.519 對齊 Webcrumbs host data 新覆蓋口徑

This commit is contained in:
OoO
2026-05-31 23:39:34 +08:00
parent 11896c24dc
commit 371a2b325e
7 changed files with 54 additions and 21 deletions

View File

@@ -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

View File

@@ -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"]