Artifex/tests/test_model_router_providers.py

31 lines
1.1 KiB
Python
Raw Normal View History

2026-08-15 13:50:24 +07:00
from __future__ import annotations
from agents.providers import DeterministicCodingProvider
from control_plane.resources.models import ModelRequest, Resource, ResourceKind
from model_router.router import ModelCapability, ModelRequestContract, ModelRouter
def test_model_router_persists_sanitized_request_metadata() -> None:
Resource.objects.create(
name="Qwen Test",
kind=ResourceKind.MODEL,
provider="qwen",
roles=["CODING"],
)
router = ModelRouter({"qwen": DeterministicCodingProvider()}, persist_requests=True)
router.complete(ModelRequestContract(purpose=ModelCapability.CODING, prompt="secret-looking prompt must not persist"))
request = ModelRequest.objects.get()
assert request.status == "COMPLETE"
assert request.logical_role == "CODING"
assert request.request["prompt_chars"] > 0
assert request.request["contains_raw_prompt"] is False
assert "secret-looking" not in str(request.request)
def test_model_router_health_is_non_throwing() -> None:
router = ModelRouter({"qwen": DeterministicCodingProvider()})
assert router.health() == {"qwen": "AVAILABLE"}