V10.575 拆分型錄可比覆核 lane
All checks were successful
CD Pipeline / deploy (push) Successful in 1m23s

This commit is contained in:
OoO
2026-06-04 11:13:35 +08:00
parent facf53b925
commit b2604a576d
14 changed files with 337 additions and 21 deletions

View File

@@ -83,7 +83,7 @@ def test_competitor_coverage_counts_only_active_product_intersection():
"def _fetch_manual_review_summary", 1
)[0]
assert "coverage:v12" in source
assert "coverage:v13" in source
assert "CATALOG_COMPARABLE_SCORE_FLOOR" in source
assert "rescore_accepted_count" in coverage_source
assert "(SELECT COUNT(*) FROM valid_competitor) AS valid_matches" not in coverage_source
@@ -105,7 +105,13 @@ def test_competitor_coverage_counts_only_active_product_intersection():
assert "\"decision_support_rate\": round(decision_support_count / max(active, 1) * 100, 1)" in coverage_source
assert "\"catalog_comparable_count\": catalog_comparable_count" in coverage_source
assert "_catalog_comparable_sql(\"la\")" in coverage_source
assert "_catalog_review_lane_sql(\"la\", \"catalog_variant_review\")" in coverage_source
assert "_catalog_review_lane_sql(\"la\", \"catalog_unit_review\")" in coverage_source
assert "_catalog_review_lane_sql(\"la\", \"catalog_identity_review\")" in coverage_source
assert "\"catalog_review_plan\": {" in coverage_source
assert "CATALOG_COMPARABLE_SIGNAL_REASONS" in source
assert "CATALOG_VARIANT_REVIEW_REASONS" in source
assert "CATALOG_UNIT_REVIEW_REASONS" in source
assert "CATALOG_COMPARABLE_IDENTITY_REASONS" in source
assert "CATALOG_COMPARABLE_BLOCK_REASONS" in source
assert "\"identity_coverage_matches\": valid" in coverage_source
@@ -189,6 +195,9 @@ def test_competitor_review_filters_split_low_score_operational_buckets():
from services.competitor_intel_repository import REVIEW_STATUS_FILTER_GROUPS
assert REVIEW_STATUS_FILTER_GROUPS["catalog_comparable"] == ("true_low_confidence",)
assert REVIEW_STATUS_FILTER_GROUPS["catalog_variant_review"] == ("true_low_confidence",)
assert REVIEW_STATUS_FILTER_GROUPS["catalog_unit_review"] == ("true_low_confidence",)
assert REVIEW_STATUS_FILTER_GROUPS["catalog_identity_review"] == ("true_low_confidence",)
assert REVIEW_STATUS_FILTER_GROUPS["recoverable_low_score"] == ("recoverable_low_score",)
assert REVIEW_STATUS_FILTER_GROUPS["true_low_confidence"] == ("true_low_confidence",)
assert REVIEW_STATUS_FILTER_GROUPS["legacy_low_score"] == ("low_score", "refresh_low_score")
@@ -225,13 +234,21 @@ def test_catalog_comparable_review_item_keeps_exact_match_guardrail():
},
})
assert item["review_bucket"] == "catalog_comparable"
assert item["status_label"] == "型錄/任選可比"
assert "型錄、任選" in item["action_label"]
assert item["review_bucket"] == "catalog_variant_review"
assert item["status_label"] == "選項 / 色號待核"
assert item["catalog_review_guidance"]["primary_review_action"] == "needs_research"
assert "選項、色號" in item["action_label"]
envelope = item["decision_envelope"]
assert envelope["recommended_action"]["action"] == "review_catalog_comparable"
assert envelope["recommended_action"]["action"] == "needs_research"
assert envelope["guardrails"]["can_auto_execute"] is False
assert envelope["guardrails"]["catalog_comparable"] is True
assert envelope["guardrails"]["catalog_review_lane"] == "catalog_variant_review"
assert envelope["expected_impact"]["catalog_review_guidance"]["lane"] == "catalog_variant_review"
assert any(
evidence["metric"] == "catalog_comparable"
and evidence["value"] == "catalog_variant_review"
for evidence in envelope["evidence"]
)
assert any(evidence["metric"] == "catalog_comparable" for evidence in envelope["evidence"])