36 lines
913 B
Python
36 lines
913 B
Python
"""Tests del modelo GuardrailViolation."""
|
|
|
|
from datetime import UTC, datetime
|
|
from uuid import uuid4
|
|
|
|
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from forja_core.domain.guardrail import GuardrailViolation
|
|
|
|
|
|
def test_guardrail_violation_minimo_valido() -> None:
|
|
v = GuardrailViolation(
|
|
trace_id=uuid4(),
|
|
timestamp=datetime.now(UTC),
|
|
stage="input",
|
|
validator="DetectPII",
|
|
severity="block",
|
|
message="DNI detectado",
|
|
blocked=True,
|
|
)
|
|
assert v.blocked is True
|
|
|
|
|
|
def test_guardrail_violation_rechaza_severity_invalido() -> None:
|
|
with pytest.raises(ValidationError):
|
|
GuardrailViolation(
|
|
trace_id=uuid4(),
|
|
timestamp=datetime.now(UTC),
|
|
stage="input",
|
|
validator="x",
|
|
severity="critical", # type: ignore[arg-type]
|
|
message="x",
|
|
blocked=True,
|
|
)
|