Files
awoooi/apps/api/tests/test_agent_replay_fixture.py
Your Name cfb866d055
Some checks failed
Ansible Lint / lint (push) Successful in 35s
CD Pipeline / tests (push) Failing after 13s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
Code Review / ai-code-review (push) Failing after 11s
feat(governance): add agent market automation surfaces
2026-06-04 21:50:55 +08:00

88 lines
3.1 KiB
Python

from __future__ import annotations
from dataclasses import dataclass
from datetime import UTC, datetime
from src.services.agent_replay_fixture import REDACTED, build_agent_replay_fixture
@dataclass
class _Incident:
incident_id: str = "INC-001"
severity: str = "P1"
status: str = "resolved"
alertname: str = "PodCrashLooping"
alert_category: str = "kubernetes"
notification_type: str = "TYPE-2"
affected_services: list[str] | None = None
signals: list[dict] | None = None
frequency_snapshot: dict | None = None
created_at: datetime | None = None
updated_at: datetime | None = None
resolved_at: datetime | None = None
closed_at: datetime | None = None
@dataclass
class _Evidence:
evidence_summary: str = "Pod restart spike"
mcp_health: dict | None = None
sensors_attempted: int = 3
sensors_succeeded: int = 3
historical_context: str = "Similar incident recovered after rollout restart"
dependency_topology: dict | None = None
business_metrics: dict | None = None
verification_result: str | None = "success"
self_healing_score: float | None = 0.9
@dataclass
class _Execution:
success: bool = True
playbook_name: str = "rollout restart checkout"
executed_steps: list[str] | None = None
error_message: str | None = None
def test_fixture_separates_context_from_labels_and_redacts_secrets():
fixture = build_agent_replay_fixture(
run_id="fixtures",
incident=_Incident(
affected_services=["checkout"],
signals=[
{
"labels": {
"alertname": "PodCrashLooping",
"authorization": "Bearer live-token",
},
"annotations": {"summary": "pod failed"},
}
],
frequency_snapshot={"api_key": "secret-value"},
created_at=datetime(2026, 6, 1, tzinfo=UTC),
),
evidence=_Evidence(
mcp_health={"k8s": True, "token": "abc"},
business_metrics={"orders": 10, "password": "do-not-export"},
),
execution=_Execution(
executed_steps=["kubectl rollout restart deployment checkout -n prod"],
error_message="failed with Basic abc",
),
agent_turn_count=4,
).to_dict()
assert fixture["schema_version"] == "agent_replay_fixture_v1"
assert fixture["incident_context"]["signals"][0]["labels"]["authorization"] == REDACTED
assert fixture["incident_context"]["frequency_snapshot"]["api_key"] == REDACTED
assert fixture["incident_context"]["mcp_health"]["token"] == REDACTED
assert fixture["incident_context"]["business_metrics"]["password"] == REDACTED
assert fixture["evaluation_labels"]["execution_error"] == REDACTED
assert fixture["evaluation_labels"]["verification_result"] == "success"
assert fixture["evaluation_labels"]["expected_action_markers"] == [
"rollout restart",
"checkout",
]
assert "verification_result" not in fixture["incident_context"]
assert fixture["source_metadata"]["agent_turn_count"] == 4