47 lines
2.1 KiB
Python
47 lines
2.1 KiB
Python
"""Test ensuring ModelDiscoveryService reachability via the agreed entrypoint."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_model_discovery_entrypoint_reaches_service_directly():
|
|
"""Verify that router/model_discovery.py directly exports ModelDiscoveryService with .get()."""
|
|
try:
|
|
import antigravity_provider.router.model_discovery as md_module
|
|
except ImportError as exc:
|
|
pytest.fail(f"Could not import agreed module 'antigravity_provider.router.model_discovery': {exc}")
|
|
|
|
assert hasattr(
|
|
md_module, "ModelDiscoveryService"
|
|
), "Module 'antigravity_provider.router.model_discovery' must expose 'ModelDiscoveryService'"
|
|
|
|
from antigravity_provider.router.model_discovery import ModelDiscoveryService
|
|
|
|
assert hasattr(
|
|
ModelDiscoveryService, "get"
|
|
), "ModelDiscoveryService must provide a '.get()' classmethod/factory"
|
|
assert callable(ModelDiscoveryService.get), "ModelDiscoveryService.get must be callable"
|
|
|
|
service = ModelDiscoveryService.get()
|
|
assert service is not None, "ModelDiscoveryService.get() must return an initialized instance"
|
|
assert isinstance(
|
|
service, ModelDiscoveryService
|
|
), "ModelDiscoveryService.get() must return an instance of ModelDiscoveryService"
|
|
assert service is ModelDiscoveryService.get(), "ModelDiscoveryService.get() must return a singleton instance"
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_model_discovery_service_methods_and_cache_interface():
|
|
"""Verify standard methods of ModelDiscoveryService instance."""
|
|
from antigravity_provider.router.model_discovery import ModelDiscoveryService
|
|
|
|
service = ModelDiscoveryService.get()
|
|
assert hasattr(service, "get_cached"), "ModelDiscoveryService must implement get_cached()"
|
|
assert hasattr(service, "refresh_models"), "ModelDiscoveryService must implement refresh_models()"
|
|
|
|
# Test cache read for a standard provider
|
|
cached = service.get_cached("antigravity")
|
|
assert isinstance(cached, dict), "get_cached must return a dictionary"
|
|
assert "models" in cached, "cached payload must contain 'models' key"
|