feat(llm): añade MockProvider determinista con 3 escenarios canónicos

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Juan
2026-05-10 10:28:40 +02:00
co-authored by Claude Opus 4.7
parent bc16059738
commit 45b2b9367c
2 changed files with 166 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
"""Tests del proveedor LLM mock determinista."""
import json
import pytest
from agentforge_core.llm.base import Message
from agentforge_core.llm.mock import MockProvider
@pytest.fixture
def provider() -> MockProvider:
return MockProvider()
async def test_mock_provider_es_determinista(provider: MockProvider) -> None:
msgs = [Message(role="user", content="caída registros SIP")]
r1 = await provider.complete(msgs)
r2 = await provider.complete(msgs)
assert r1.content == r2.content
async def test_mock_provider_devuelve_json_valido(provider: MockProvider) -> None:
msgs = [Message(role="user", content="degradación MOS pool SBC")]
r = await provider.complete(msgs)
parsed = json.loads(r.content)
assert "severity" in parsed
assert "proposed_actions" in parsed
assert isinstance(parsed["proposed_actions"], list)
async def test_mock_provider_respuesta_canonica_si_no_match(provider: MockProvider) -> None:
msgs = [Message(role="user", content="texto random sin patrón")]
r = await provider.complete(msgs)
parsed = json.loads(r.content)
assert parsed["severity"] in {"low", "medium", "high", "critical"}