Files
awoooi/apps/api/tests/test_mcp_audit_context.py
Your Name fa0e956c0e
All checks were successful
Code Review / ai-code-review (push) Successful in 10s
CD Pipeline / tests (push) Successful in 59s
CD Pipeline / build-and-deploy (push) Successful in 3m22s
CD Pipeline / post-deploy-checks (push) Successful in 1m19s
fix(mcp): tag legacy provider calls with audit context
2026-05-06 17:18:52 +08:00

46 lines
1.4 KiB
Python

from __future__ import annotations
from src.services.mcp_audit_context import (
build_mcp_audit_context,
with_mcp_audit_context,
)
def test_build_mcp_audit_context_keeps_non_empty_fields() -> None:
context = build_mcp_audit_context(
session_id="incident:INC-1:pre_decision",
incident_id="INC-1",
flywheel_node="sense",
agent_role="pre_decision_investigator",
operator_user_id=None,
)
assert context == {
"gateway_path": "legacy_registry_provider",
"session_id": "incident:INC-1:pre_decision",
"incident_id": "INC-1",
"flywheel_node": "sense",
"agent_role": "pre_decision_investigator",
}
def test_with_mcp_audit_context_merges_existing_context_without_mutating_source() -> None:
params = {
"namespace": "awoooi-prod",
"_mcp_audit": {"trace_id": "trace-1", "flywheel_node": "old"},
}
audited = with_mcp_audit_context(
params,
incident_id="INC-2",
flywheel_node="verify",
agent_role="post_execution_verifier",
)
assert params["_mcp_audit"]["flywheel_node"] == "old"
assert audited is not params
assert audited["_mcp_audit"]["trace_id"] == "trace-1"
assert audited["_mcp_audit"]["incident_id"] == "INC-2"
assert audited["_mcp_audit"]["flywheel_node"] == "verify"
assert audited["_mcp_audit"]["agent_role"] == "post_execution_verifier"