mirror of
https://github.com/hoshikawa2/agent_platform_oci.git
synced 2026-09-07 10:13:46 +00:00
bugfix: oci_openai provider
This commit is contained in:
60
tests/test_compliance_protocol_expected_values.py
Normal file
60
tests/test_compliance_protocol_expected_values.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import pytest
|
||||
|
||||
from agent_framework.guardrails.rails import ComplianceRail
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_cmp_accepts_expected_protocol_directly_even_when_regex_misses_markdown_distance():
|
||||
rail = ComplianceRail()
|
||||
text = (
|
||||
"[FaturasAgent] Entendido. Seu aceite foi registrado e o protocolo de atendimento "
|
||||
"foi aberto com o número **1234567890**."
|
||||
)
|
||||
|
||||
decision = await rail.evaluate(
|
||||
text,
|
||||
{
|
||||
"tipo_fluxo": "ajuste",
|
||||
"expected_protocols": ["1234567890"],
|
||||
},
|
||||
)
|
||||
|
||||
assert decision.allowed is True
|
||||
assert decision.sanitized_text is None
|
||||
assert decision.metadata["protocol_validation"] == "expected_values"
|
||||
assert decision.metadata["expected_protocols"] == ["1234567890"]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_cmp_does_not_accept_a_different_protocol_when_expected_value_is_known():
|
||||
rail = ComplianceRail()
|
||||
text = "Seu protocolo é 9999999999."
|
||||
|
||||
decision = await rail.evaluate(
|
||||
text,
|
||||
{
|
||||
"requer_protocolo": True,
|
||||
"expected_protocols": ["1234567890"],
|
||||
},
|
||||
)
|
||||
|
||||
assert decision.allowed is True
|
||||
assert decision.sanitized_text is not None
|
||||
assert "um dois três quatro cinco seis sete oito nove zero" in decision.sanitized_text
|
||||
assert decision.metadata["missing_protocols_spoken"] == [
|
||||
"um dois três quatro cinco seis sete oito nove zero"
|
||||
]
|
||||
assert decision.metadata["protocol_validation"] == "expected_values"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_cmp_keeps_regex_compatibility_when_expected_protocols_are_unavailable():
|
||||
rail = ComplianceRail()
|
||||
|
||||
decision = await rail.evaluate(
|
||||
"Seu protocolo é 1234567890.",
|
||||
{"requer_protocolo": True},
|
||||
)
|
||||
|
||||
assert decision.allowed is True
|
||||
assert decision.metadata["protocol_validation"] == "generic_regex"
|
||||
Reference in New Issue
Block a user