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")