diff --git a/apps/api/tests/test_ai_agent_log_controlled_writeback_dispatch_api.py b/apps/api/tests/test_ai_agent_log_controlled_writeback_dispatch_api.py index f6d87b148..8446d3b98 100644 --- a/apps/api/tests/test_ai_agent_log_controlled_writeback_dispatch_api.py +++ b/apps/api/tests/test_ai_agent_log_controlled_writeback_dispatch_api.py @@ -48,16 +48,19 @@ class _FakeContext: def test_log_controlled_writeback_dispatch_builder_creates_metadata_receipts(): payload = build_ai_agent_log_controlled_writeback_dispatch_receipt() + expected_runtime_sample_count = 3 + expected_target_count = 6 + expected_selector_count = expected_runtime_sample_count * expected_target_count assert payload["schema_version"] == "ai_agent_log_controlled_writeback_dispatch_receipt_v1" assert payload["status"] == "controlled_writeback_dispatch_ready" assert payload["active_blockers"] == [] assert payload["readback"]["operation_type"] == "log_controlled_writeback_dispatched" - assert payload["rollups"]["dispatch_batch_count"] == 6 - assert payload["rollups"]["ready_dispatch_batch_count"] == 6 - assert payload["rollups"]["target_selector_count"] == 12 - assert payload["rollups"]["source_of_truth_diff_count"] == 12 - assert payload["rollups"]["post_apply_verifier_ref_count"] == 12 + assert payload["rollups"]["dispatch_batch_count"] == expected_target_count + assert payload["rollups"]["ready_dispatch_batch_count"] == expected_target_count + assert payload["rollups"]["target_selector_count"] == expected_selector_count + assert payload["rollups"]["source_of_truth_diff_count"] == expected_selector_count + assert payload["rollups"]["post_apply_verifier_ref_count"] == expected_selector_count assert payload["rollups"]["runtime_dispatch_performed"] is False targets = {batch["target"] for batch in payload["dispatch_batches"]} diff --git a/apps/api/tests/test_ai_agent_log_controlled_writeback_executor_readback_api.py b/apps/api/tests/test_ai_agent_log_controlled_writeback_executor_readback_api.py index 506853a59..2d51a93c3 100644 --- a/apps/api/tests/test_ai_agent_log_controlled_writeback_executor_readback_api.py +++ b/apps/api/tests/test_ai_agent_log_controlled_writeback_executor_readback_api.py @@ -27,6 +27,10 @@ def test_log_controlled_writeback_executor_endpoint_returns_readback(): def _assert_executor_readback(payload: dict): + expected_runtime_sample_count = 3 + expected_target_count = 6 + expected_writeback_plan_count = expected_runtime_sample_count * expected_target_count + assert payload["schema_version"] == "ai_agent_log_controlled_writeback_executor_readback_v1" assert payload["priority"] == "P1-LOG-KM-RAG-MCP-PLAYBOOK" assert payload["status"] == "controlled_writeback_executor_ready" @@ -47,15 +51,15 @@ def _assert_executor_readback(payload: dict): assert policy["rollback_required"] is True assert policy["post_apply_verifier_required"] is True - assert payload["rollups"]["source_writeback_plan_count"] == 12 - assert payload["rollups"]["execution_batch_count"] == 6 - assert payload["rollups"]["ready_execution_batch_count"] == 6 - assert payload["rollups"]["target_count"] == 6 - assert payload["rollups"]["target_selector_count"] == 12 - assert payload["rollups"]["source_of_truth_diff_count"] == 12 - assert payload["rollups"]["check_mode_ready_count"] == 6 - assert payload["rollups"]["rollback_ready_count"] == 6 - assert payload["rollups"]["post_apply_verifier_ready_count"] == 6 + assert payload["rollups"]["source_writeback_plan_count"] == expected_writeback_plan_count + assert payload["rollups"]["execution_batch_count"] == expected_target_count + assert payload["rollups"]["ready_execution_batch_count"] == expected_target_count + assert payload["rollups"]["target_count"] == expected_target_count + assert payload["rollups"]["target_selector_count"] == expected_writeback_plan_count + assert payload["rollups"]["source_of_truth_diff_count"] == expected_writeback_plan_count + assert payload["rollups"]["check_mode_ready_count"] == expected_target_count + assert payload["rollups"]["rollback_ready_count"] == expected_target_count + assert payload["rollups"]["post_apply_verifier_ready_count"] == expected_target_count assert payload["rollups"]["controlled_executor_dispatch_ready"] is True assert payload["rollups"]["controlled_apply_enabled_by_policy"] is True assert payload["rollups"]["runtime_dispatch_performed"] is False @@ -68,17 +72,20 @@ def _assert_executor_readback(payload: dict): assert batch["status"] == "ready_for_controlled_executor_dispatch" assert batch["apply_mode"] == "controlled_apply" assert batch["dispatch_enabled_by_policy"] is True - assert batch["plan_count"] == 2 - assert len(batch["plan_ids"]) == 2 - assert len(batch["receipt_ids"]) == 2 - assert batch["target_selector_count"] == 2 - assert batch["source_of_truth_diff_count"] == 2 + assert batch["plan_count"] == expected_runtime_sample_count + assert len(batch["plan_ids"]) == expected_runtime_sample_count + assert len(batch["receipt_ids"]) == expected_runtime_sample_count + assert batch["target_selector_count"] == expected_runtime_sample_count + assert batch["source_of_truth_diff_count"] == expected_runtime_sample_count assert batch["check_mode"]["enabled"] is True assert batch["check_mode"]["required"] is True assert batch["rollback"]["required"] is True - assert len(batch["rollback"]["rollback_refs"]) == 2 + assert len(batch["rollback"]["rollback_refs"]) == expected_runtime_sample_count assert batch["post_apply_verifier"]["required"] is True - assert len(batch["post_apply_verifier"]["verifier_refs"]) == 2 + assert ( + len(batch["post_apply_verifier"]["verifier_refs"]) + == expected_runtime_sample_count + ) assert batch["runtime_dispatch_performed"] is False context = payload["agent_consumption_context"] diff --git a/apps/api/tests/test_ai_agent_log_post_write_verifier_dry_run_api.py b/apps/api/tests/test_ai_agent_log_post_write_verifier_dry_run_api.py index 9014b9c21..07200d1dd 100644 --- a/apps/api/tests/test_ai_agent_log_post_write_verifier_dry_run_api.py +++ b/apps/api/tests/test_ai_agent_log_post_write_verifier_dry_run_api.py @@ -27,6 +27,12 @@ def test_log_post_write_verifier_dry_run_endpoint_returns_readback(): def _assert_post_write_verifier_payload(payload: dict): + expected_runtime_sample_count = 3 + expected_target_count = 6 + expected_candidate_receipt_count = ( + expected_runtime_sample_count * expected_target_count + ) + assert payload["schema_version"] == "ai_agent_log_post_write_verifier_dry_run_v1" assert payload["priority"] == "P1-LOG-KM-RAG-MCP-PLAYBOOK" assert payload["status"] == "post_write_verifier_dry_run_ready" @@ -38,13 +44,22 @@ def _assert_post_write_verifier_payload(payload: dict): assert payload["rollups"]["verifier_node_count"] == 6 assert payload["rollups"]["passed_verifier_node_count"] == 6 - assert payload["rollups"]["target_count"] == 6 - assert payload["rollups"]["verified_target_count"] == 6 - assert payload["rollups"]["candidate_receipt_count"] == 12 - assert payload["rollups"]["verified_candidate_receipt_count"] == 12 + assert payload["rollups"]["target_count"] == expected_target_count + assert payload["rollups"]["verified_target_count"] == expected_target_count + assert ( + payload["rollups"]["candidate_receipt_count"] + == expected_candidate_receipt_count + ) + assert ( + payload["rollups"]["verified_candidate_receipt_count"] + == expected_candidate_receipt_count + ) assert payload["rollups"]["source_pipeline_node_count"] == 9 - assert payload["rollups"]["source_candidate_receipt_count"] == 12 - assert payload["rollups"]["runtime_sample_count"] == 2 + assert ( + payload["rollups"]["source_candidate_receipt_count"] + == expected_candidate_receipt_count + ) + assert payload["rollups"]["runtime_sample_count"] == expected_runtime_sample_count assert payload["rollups"]["dry_run_ready"] is True assert payload["rollups"]["controlled_writeback_next_step_ready"] is True assert payload["rollups"]["writeback_authorized_by_this_endpoint"] is False @@ -72,8 +87,8 @@ def _assert_post_write_verifier_payload(payload: dict): assert set(verifications) == {"km", "rag", "playbook", "mcp", "verifier", "ai_agent"} for verification in verifications.values(): assert verification["status"] == "target_receipts_verified" - assert verification["candidate_count"] == 2 - assert verification["verified_candidate_count"] == 2 + assert verification["candidate_count"] == expected_runtime_sample_count + assert verification["verified_candidate_count"] == expected_runtime_sample_count assert verification["invalid_candidate_count"] == 0 assert verification["invalid_receipts"] == [] assert verification["write_enabled"] is False