fix(aiops): fallback and escalate automation blockers
This commit is contained in:
37
apps/api/tests/test_phase2_fallback.py
Normal file
37
apps/api/tests/test_phase2_fallback.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from types import SimpleNamespace
|
||||
|
||||
from src.agents.protocol import AgentSessionStatus
|
||||
from src.services.decision_manager import _phase2_fallback_reason
|
||||
|
||||
|
||||
def _package(**kwargs):
|
||||
data = {
|
||||
"session_status": AgentSessionStatus.COMPLETED,
|
||||
"all_agents_degraded": False,
|
||||
"recommended_action": "kubectl rollout restart deployment/awoooi-api -n awoooi-prod",
|
||||
"requires_human_approval": False,
|
||||
}
|
||||
data.update(kwargs)
|
||||
return SimpleNamespace(**data)
|
||||
|
||||
|
||||
def test_phase2_timeout_continues_to_fallback() -> None:
|
||||
pkg = _package(
|
||||
session_status=AgentSessionStatus.TIMEOUT,
|
||||
recommended_action=None,
|
||||
requires_human_approval=True,
|
||||
)
|
||||
|
||||
assert _phase2_fallback_reason(pkg) == "session_timeout"
|
||||
|
||||
|
||||
def test_phase2_empty_manual_gate_continues_to_fallback() -> None:
|
||||
pkg = _package(recommended_action="", requires_human_approval=True)
|
||||
|
||||
assert _phase2_fallback_reason(pkg) == "empty_action_requires_human"
|
||||
|
||||
|
||||
def test_phase2_actionable_package_stays_primary() -> None:
|
||||
pkg = _package()
|
||||
|
||||
assert _phase2_fallback_reason(pkg) is None
|
||||
Reference in New Issue
Block a user