test_source_evidence.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from content_agent.run_service import RunService
  2. from content_agent.schemas import RunStartRequest
  3. def test_source_evidence_inherits_evidence_pack_without_rewriting_origin(tmp_path):
  4. service = RunService(runtime_root=tmp_path / "runtime" / "v1")
  5. service.start_run(RunStartRequest(trace_id="test_trace_source_evidence"))
  6. source_context = service.read_json("test_trace_source_evidence", "source_context.json")
  7. evidence_pack = source_context["ext_data"]["evidence_pack"]
  8. decisions = service.read_jsonl("test_trace_source_evidence", "rule_decisions.jsonl")
  9. final_output = service.read_json("test_trace_source_evidence", "final_output.json")
  10. source_evidence = decisions[0]["source_evidence"]
  11. for field in [
  12. "source_kind",
  13. "pattern_source_system",
  14. "case_id_type",
  15. "source_post_id",
  16. "pattern_execution_id",
  17. "mining_config_id",
  18. "itemset_ids",
  19. "itemset_items",
  20. "category_bindings",
  21. "element_bindings",
  22. "matched_post_ids",
  23. "seed_terms",
  24. "trace_id",
  25. "source_certainty",
  26. "validation_status",
  27. ]:
  28. assert source_evidence[field] == evidence_pack[field]
  29. assert source_evidence["candidate_aweme_id"] != source_evidence["source_post_id"]
  30. assert source_evidence["candidate_aweme_id"] not in source_evidence["matched_post_ids"]
  31. assert source_evidence["candidate_relation"] == "mock_pattern_matched"
  32. assert final_output["content_assets"][0]["source_evidence"]["source_edge_ids"]
  33. assert {
  34. record["decision_id"] for record in final_output["decision_records"]
  35. } == {"d_001", "d_002", "d_003"}