spi / tests /unit /test_router.py
desiree's picture
Phase 1: ModelRouter tests
615843b verified
Raw History Blame Contribute Delete
901 Bytes
import pytest
from spi.renderers.mock import MockVideoRenderer
from spi.renderers.registry import ModelRouter
def test_unknown_mode_rejected():
with pytest.raises(ValueError):
ModelRouter("hyper")
def test_routes_mock_video():
r = ModelRouter("mock")
renderer = r.route("video")
assert isinstance(renderer, MockVideoRenderer)
caps = renderer.capabilities()
assert caps["vram_gb"] == 0 and "text_to_video" in caps["tasks"]
def test_register_and_prefer():
r = ModelRouter("mock")
class MyRenderer(MockVideoRenderer):
name = "my_renderer"
r.register("video", MyRenderer())
assert r.route("video", prefer="my_renderer").name == "my_renderer"
assert r.list_renderers("video")[0]["name"] in ("mock_video", "my_renderer")
def test_no_lane_raises():
r = ModelRouter("mock")
with pytest.raises(Exception):
r.route("threed")