test_approval_for_different_request_rejected (test_harness.T10_GatewayBypassG32.test_approval_for_different_request_rejected) ... ok
test_consumption_is_atomic_under_concurrency (test_harness.T10_GatewayBypassG32.test_consumption_is_atomic_under_concurrency) ... ok
test_direct_call_without_gateway_credential_rejected (test_harness.T10_GatewayBypassG32.test_direct_call_without_gateway_credential_rejected) ... ok
test_expired_or_wrong_audience_credential_rejected (test_harness.T10_GatewayBypassG32.test_expired_or_wrong_audience_credential_rejected) ... ok
test_forged_gateway_credential_rejected (test_harness.T10_GatewayBypassG32.test_forged_gateway_credential_rejected) ... ok
test_invalid_approver_or_expired_approval_rejected_at_sink (test_harness.T10_GatewayBypassG32.test_invalid_approver_or_expired_approval_rejected_at_sink) ... ok
test_legitimate_path_still_works_and_is_logged (test_harness.T10_GatewayBypassG32.test_legitimate_path_still_works_and_is_logged) ... ok
test_replay_after_consumption_rejected (test_harness.T10_GatewayBypassG32.test_replay_after_consumption_rejected) ... ok
test_reused_gateway_assertion_rejected (test_harness.T10_GatewayBypassG32.test_reused_gateway_assertion_rejected) ... ok
test_sink_denial_via_gateway_is_audited_as_mcp_server (test_harness.T10_GatewayBypassG32.test_sink_denial_via_gateway_is_audited_as_mcp_server) ... ok
test_valid_gateway_credential_without_approval_rejected (test_harness.T10_GatewayBypassG32.test_valid_gateway_credential_without_approval_rejected)
Simulates a gateway bug or compromised gateway signing a write that has no valid approval: the sink re-checks. ... ok
test_approver_must_be_on_tenant_list (test_harness.T11_MultiTenancyG30.test_approver_must_be_on_tenant_list) ... ok
test_budget_cap_per_tenant (test_harness.T11_MultiTenancyG30.test_budget_cap_per_tenant) ... ok
test_cross_tenant_approval_reuse_blocked (test_harness.T11_MultiTenancyG30.test_cross_tenant_approval_reuse_blocked) ... ok
test_cross_tenant_document_read_blocked (test_harness.T11_MultiTenancyG30.test_cross_tenant_document_read_blocked) ... ok
test_cross_tenant_write_blocked_at_gateway_and_sink (test_harness.T11_MultiTenancyG30.test_cross_tenant_write_blocked_at_gateway_and_sink) ... ok
test_every_event_carries_tenant_and_finops_rollup_per_tenant (test_harness.T11_MultiTenancyG30.test_every_event_carries_tenant_and_finops_rollup_per_tenant) ... ok
test_gateway_rejects_token_without_tenant (test_harness.T11_MultiTenancyG30.test_gateway_rejects_token_without_tenant) ... ok
test_missing_or_unknown_tenant_rejected_before_model (test_harness.T11_MultiTenancyG30.test_missing_or_unknown_tenant_rejected_before_model) ... ok
test_per_tenant_server_allowlist_pin_and_ceiling (test_harness.T11_MultiTenancyG30.test_per_tenant_server_allowlist_pin_and_ceiling) ... ok
test_rate_cap_per_tenant_and_window_resets (test_harness.T11_MultiTenancyG30.test_rate_cap_per_tenant_and_window_resets) ... ok
test_request_cap_per_tenant (test_harness.T11_MultiTenancyG30.test_request_cap_per_tenant) ... ok
test_results_store_rows_tenant_keyed_no_cross_tenant_read (test_harness.T11_MultiTenancyG30.test_results_store_rows_tenant_keyed_no_cross_tenant_read) ... ok
test_token_cap_per_tenant_blocks_before_model_call (test_harness.T11_MultiTenancyG30.test_token_cap_per_tenant_blocks_before_model_call) ... ok
test_token_for_tenant_a_against_tenant_b_server_blocked (test_harness.T11_MultiTenancyG30.test_token_for_tenant_a_against_tenant_b_server_blocked) ... ok
test_gateway_holds_write_with_no_approval_id (test_harness.T1_PreApprovalExecutionBlocked.test_gateway_holds_write_with_no_approval_id) ... ok
test_harness_blocks_execute_before_approval (test_harness.T1_PreApprovalExecutionBlocked.test_harness_blocks_execute_before_approval) ... ok
test_expired_approval (test_harness.T2_ForgedWriteBlocked.test_expired_approval) ... ok
test_forged_approval_id (test_harness.T2_ForgedWriteBlocked.test_forged_approval_id) ... ok
test_rejected_approval_cannot_write (test_harness.T2_ForgedWriteBlocked.test_rejected_approval_cannot_write) ... ok
test_replay_of_used_approval (test_harness.T2_ForgedWriteBlocked.test_replay_of_used_approval) ... ok
test_self_approval_and_agent_approval_denied (test_harness.T2_ForgedWriteBlocked.test_self_approval_and_agent_approval_denied) ... ok
test_tampered_args_after_approval (test_harness.T2_ForgedWriteBlocked.test_tampered_args_after_approval) ... ok
test_classification_above_ceiling_never_reaches_model (test_harness.T3_PoisonedDocToolRequestBlocked.test_classification_above_ceiling_never_reaches_model) ... ok
test_gateway_denies_injected_tool_even_if_harness_forwards_it (test_harness.T3_PoisonedDocToolRequestBlocked.test_gateway_denies_injected_tool_even_if_harness_forwards_it) ... ok
test_injected_tools_stripped_and_audited (test_harness.T3_PoisonedDocToolRequestBlocked.test_injected_tools_stripped_and_audited) ... ok
test_read_token_cannot_write (test_harness.T3_PoisonedDocToolRequestBlocked.test_read_token_cannot_write) ... ok
test_digest_mismatch (test_harness.T4_UnregisteredOrUnpinnedServerRejected.test_digest_mismatch) ... ok
test_inactive_or_unhealthy_server (test_harness.T4_UnregisteredOrUnpinnedServerRejected.test_inactive_or_unhealthy_server) ... ok
test_unpinned_version_on_write_blocked (test_harness.T4_UnregisteredOrUnpinnedServerRejected.test_unpinned_version_on_write_blocked)
Write path: approval is bound to server_version via request_sha256, so a version swap dies at step 4 ... ok
test_unpinned_versions_rejected_at_registry (test_harness.T4_UnregisteredOrUnpinnedServerRejected.test_unpinned_versions_rejected_at_registry)
Read path (no approval involved): Registry step 5 must reject every non-exact pin. ... ok
test_unregistered_server (test_harness.T4_UnregisteredOrUnpinnedServerRejected.test_unregistered_server) ... ok
test_expired_human_session_rejected_at_authorize (test_harness.T5_ExpiredCredentialRejected.test_expired_human_session_rejected_at_authorize) ... ok
test_expired_obo_token_at_gateway (test_harness.T5_ExpiredCredentialRejected.test_expired_obo_token_at_gateway) ... ok
test_happy_path (test_harness.T6_ApprovedWriteAllowedAndLogged.test_happy_path) ... ok
test_contract_and_registry_agree (test_harness.T7_ContractMatchesHarnessRegistry.test_contract_and_registry_agree) ... ok
test_authorize_precedes_choose_brain (test_harness.T8_LifecycleOrderG16.test_authorize_precedes_choose_brain) ... ok
test_draft_server_cannot_serve_before_go_live (test_harness.T9_GoLiveGateG29.test_draft_server_cannot_serve_before_go_live) ... ok
test_ed_oz_agent_or_pam_cannot_sign (test_harness.T9_GoLiveGateG29.test_ed_oz_agent_or_pam_cannot_sign) ... ok
test_jon_signs_pam_witnesses_goes_active (test_harness.T9_GoLiveGateG29.test_jon_signs_pam_witnesses_goes_active) ... ok
test_optional_scout_review (test_harness.T9_GoLiveGateG29.test_optional_scout_review) ... ok
test_witness_must_be_pam_and_evidence_logged (test_harness.T9_GoLiveGateG29.test_witness_must_be_pam_and_evidence_logged) ... ok
test_confident_proceed_allows (test_judge_gate.J1_HappyPath.test_confident_proceed_allows) ... ok
test_noul_and_score_questions (test_judge_gate.J1_HappyPath.test_noul_and_score_questions) ... ok
test_exception_can_escalate_but_never_allow (test_judge_gate.J2_ErrorFailsClosed.test_exception_can_escalate_but_never_allow) ... ok
test_exception_denies (test_judge_gate.J2_ErrorFailsClosed.test_exception_denies) ... ok
test_slow_judge_denied (test_judge_gate.J3_TimeoutFailsClosed.test_slow_judge_denied) ... ok
test_each_malformed_response_denied (test_judge_gate.J4_MalformedFailsClosed.test_each_malformed_response_denied) ... ok
test_random_garbage_never_allows (test_judge_gate.J4_MalformedFailsClosed.test_random_garbage_never_allows) ... ok
test_below_threshold_escalates (test_judge_gate.J5_LowConfidence.test_below_threshold_escalates) ... ok
test_confident_block_denies_and_confident_escalate_escalates (test_judge_gate.J5_LowConfidence.test_confident_block_denies_and_confident_escalate_escalates) ... ok
test_small_margin_escalates_even_above_threshold (test_judge_gate.J5_LowConfidence.test_small_margin_escalates_even_above_threshold) ... ok
test_uncertain_can_deny (test_judge_gate.J5_LowConfidence.test_uncertain_can_deny) ... ok
test_documented_example_answers_parse (test_judge_gate.J6_ClefAdapterMatchesDocs.test_documented_example_answers_parse) ... ok
test_no_token_means_not_called_and_denied (test_judge_gate.J6_ClefAdapterMatchesDocs.test_no_token_means_not_called_and_denied) ... ok
test_pricing_constant_from_docs (test_judge_gate.J6_ClefAdapterMatchesDocs.test_pricing_constant_from_docs) ... ok
test_request_shape_url_and_auth (test_judge_gate.J6_ClefAdapterMatchesDocs.test_request_shape_url_and_auth) ... ok
test_rest_envelope_accepted_and_error_envelope_denied (test_judge_gate.J6_ClefAdapterMatchesDocs.test_rest_envelope_accepted_and_error_envelope_denied) ... ok
test_jev_cannot_be_primary (test_judge_gate.J7_JevBenchmarkOnly.test_jev_cannot_be_primary) ... ok
test_side_by_side_records_but_never_decides (test_judge_gate.J7_JevBenchmarkOnly.test_side_by_side_records_but_never_decides) ... ok
test_allow_still_requires_human_approval (test_judge_gate.J8_HarnessIntegration.test_allow_still_requires_human_approval) ... ok
test_block_rejects_before_approval (test_judge_gate.J8_HarnessIntegration.test_block_rejects_before_approval) ... ok
test_error_timeout_malformed_reject_run (test_judge_gate.J8_HarnessIntegration.test_error_timeout_malformed_reject_run) ... ok
test_low_confidence_escalates_flagged_for_human (test_judge_gate.J8_HarnessIntegration.test_low_confidence_escalates_flagged_for_human) ... ok

----------------------------------------------------------------------
Ran 74 tests in 0.500s

OK
