feat(domain): añade modelos GuardrailViolation, PolicyDefinition y AgentExecution
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
"""Tests de modelos de ejecución."""
|
||||
|
||||
from datetime import UTC, datetime
|
||||
from uuid import uuid4
|
||||
|
||||
from agentforge_core.domain.execution import (
|
||||
AgentExecution,
|
||||
AgentExecutionSummary,
|
||||
DecisionStep,
|
||||
ProposedAction,
|
||||
)
|
||||
|
||||
|
||||
def test_proposed_action_risk_score_in_rango() -> None:
|
||||
a = ProposedAction(
|
||||
id="act-1",
|
||||
action="rollback_image",
|
||||
target="cscf-01",
|
||||
risk_score=4,
|
||||
rollback_plan="redeploy 4.7.1",
|
||||
requires_approval=True,
|
||||
)
|
||||
assert a.risk_score == 4
|
||||
|
||||
|
||||
def test_decision_step_serializable() -> None:
|
||||
s = DecisionStep(
|
||||
step="llm_reason",
|
||||
timestamp=datetime.now(UTC),
|
||||
duration_ms=120,
|
||||
detail={"tokens_in": 100},
|
||||
)
|
||||
assert s.model_dump()["detail"]["tokens_in"] == 100
|
||||
|
||||
|
||||
def test_agent_execution_status_running() -> None:
|
||||
e = AgentExecution(
|
||||
trace_id=uuid4(),
|
||||
agent_name="incident_analyzer",
|
||||
agent_version="v1",
|
||||
status="running",
|
||||
started_at=datetime.now(UTC),
|
||||
finished_at=None,
|
||||
decision_path=[],
|
||||
violations=[],
|
||||
proposed_actions=[],
|
||||
needs_human_for=None,
|
||||
final_output=None,
|
||||
error=None,
|
||||
)
|
||||
assert e.status == "running"
|
||||
|
||||
|
||||
def test_agent_execution_summary_no_incluye_decision_path() -> None:
|
||||
s = AgentExecutionSummary(
|
||||
trace_id=uuid4(),
|
||||
agent_name="x",
|
||||
agent_version="v1",
|
||||
status="completed",
|
||||
started_at=datetime.now(UTC),
|
||||
finished_at=datetime.now(UTC),
|
||||
n_violations=0,
|
||||
n_proposed_actions=2,
|
||||
)
|
||||
assert "decision_path" not in s.model_dump()
|
||||
Reference in New Issue
Block a user