diff --git a/tests/test_vendor_capabilities.py b/tests/test_vendor_capabilities.py new file mode 100644 index 00000000..8e1516a3 --- /dev/null +++ b/tests/test_vendor_capabilities.py @@ -0,0 +1,40 @@ +import pytest +from src.vendor_capabilities import VendorCapabilities, get_capabilities, register + +@pytest.fixture(autouse=True) +def _clean_registry(): + import src.vendor_capabilities + snapshot = src.vendor_capabilities._REGISTRY.copy() + yield + src.vendor_capabilities._REGISTRY.clear() + src.vendor_capabilities._REGISTRY.update(snapshot) + +def test_registry_lookup_known_model(): + caps = VendorCapabilities( + vendor='qwen', + model='qwen-max', + vision=False, + context_window=32768 + ) + register(caps) + retrieved = get_capabilities('qwen', 'qwen-max') + assert retrieved.vendor == 'qwen' + assert retrieved.model == 'qwen-max' + assert retrieved.context_window == 32768 + assert retrieved.vision is False + +def test_fallback_to_vendor_default(): + caps = VendorCapabilities( + vendor='llama', + model='*', + context_window=131072, + cost_tracking=False + ) + register(caps) + retrieved = get_capabilities('llama', 'llama-3.3-70b-specdec') + assert retrieved.context_window == 131072 + assert retrieved.cost_tracking is False + +def test_unknown_vendor_raises(): + with pytest.raises(KeyError, match='No capabilities registered'): + get_capabilities('nonexistent_vendor', 'anymodel')