37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
"""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"}
|