| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import json
- from content_agent.run_service import RunService
- from content_agent.schemas import RunStartRequest
- from tests.p1_helpers import FakeQueryVariantClient, REAL_SOURCE_FIXTURE
- def _start_mock_run(tmp_path):
- service = RunService(
- runtime_root=tmp_path / "runtime" / "v1",
- query_variant_client=FakeQueryVariantClient(),
- )
- state = service.start_run(
- RunStartRequest(platform_mode="mock", source=str(REAL_SOURCE_FIXTURE))
- )
- assert state["status"] == "success"
- return service, state["run_id"]
- def test_keep_content_for_review_is_visible_but_not_pooled(tmp_path):
- service, run_id = _start_mock_run(tmp_path)
- final_output = service.read_json(run_id, "final_output.json")
- content_ids = {asset["platform_content_id"] for asset in final_output["content_assets"]}
- review_ids = {record["platform_content_id"] for record in final_output["review_records"]}
- assert final_output["summary"]["review_content_count"] == len(final_output["review_records"])
- assert review_ids
- assert not review_ids & content_ids
- assert {record["review_status"] for record in final_output["review_records"]} == {
- "pending_review"
- }
- assert {record["final_asset_status"] for record in final_output["review_records"]} == {
- "review_only"
- }
- assert final_output["validation_status"] == "pass"
- assert final_output["summary"]["run_path_complete"] is True
- assert final_output["summary"]["trace_complete"] is True
- def test_review_record_path_refs_are_validated(tmp_path):
- service, run_id = _start_mock_run(tmp_path)
- final_output_path = service.runtime.run_dir(run_id) / "final_output.json"
- final_output = json.loads(final_output_path.read_text(encoding="utf-8"))
- final_output["review_records"][0]["source_path_record_ids"] = ["missing_path"]
- final_output_path.write_text(
- json.dumps(final_output, ensure_ascii=False, indent=2) + "\n",
- encoding="utf-8",
- )
- validation = service.validate_run(run_id)
- assert validation["status"] == "fail"
- assert any(finding["check_id"] == "missing_path_ref" for finding in validation["findings"])
- assert any(
- finding["check_id"] == "completeness_mismatch"
- for finding in validation["findings"]
- )
- def test_run_service_rewrites_final_output_with_final_validation_status(tmp_path):
- service, run_id = _start_mock_run(tmp_path)
- final_output = service.read_json(run_id, "final_output.json")
- validation = service.validate_run(run_id)
- assert validation["status"] == "pass"
- assert final_output["validation_status"] == validation["status"]
- assert final_output["summary"]["run_path_complete"] is True
- assert final_output["summary"]["trace_complete"] is True
|