feat(ai): add OpenRouter and Ollama Cloud providers (#231)
Co-authored-by: Alex Kenley <Alex.Kenley@threatvectorsecurity.com>
This commit is contained in:
@@ -65,6 +65,9 @@ class TestMatchProviderCurated:
|
||||
def test_xai_url(self):
|
||||
assert _match_provider_curated("https://api.x.ai/v1", "openai") == "xai"
|
||||
|
||||
def test_ollama_url(self):
|
||||
assert _match_provider_curated("https://ollama.com/api", "openai") == "ollama"
|
||||
|
||||
def test_no_url_match_returns_provider(self):
|
||||
assert _match_provider_curated("https://localhost:1234", "openai") == "openai"
|
||||
|
||||
@@ -263,6 +266,26 @@ class TestSetupProbeSafety:
|
||||
assert _probe_endpoint("https://api.anthropic.com/v1", "good-key") == ["claude-sonnet-4-5"]
|
||||
assert seen == ["https://api.anthropic.com/v1/models"]
|
||||
|
||||
def test_ollama_cloud_probe_uses_native_tags_endpoint(self, monkeypatch):
|
||||
monkeypatch.setattr(endpoint_resolver, "resolve_url", lambda url: url, raising=False)
|
||||
monkeypatch.setattr(model_routes, "_normalize_base", lambda url: url.rstrip("/"))
|
||||
seen = []
|
||||
|
||||
def fake_get(url, headers=None, timeout=None):
|
||||
seen.append((url, headers))
|
||||
request = httpx.Request("GET", url)
|
||||
response = httpx.Response(
|
||||
200,
|
||||
request=request,
|
||||
json={"models": [{"name": "gpt-oss:120b"}, {"model": "qwen3:235b"}]},
|
||||
)
|
||||
return response
|
||||
|
||||
monkeypatch.setattr(model_routes.httpx, "get", fake_get)
|
||||
|
||||
assert _probe_endpoint("https://ollama.com/api", "ollama-key") == ["gpt-oss:120b", "qwen3:235b"]
|
||||
assert seen == [("https://ollama.com/api/tags", {"Authorization": "Bearer ollama-key"})]
|
||||
|
||||
def test_unkeyed_anthropic_probe_can_use_curated_fallback(self, monkeypatch):
|
||||
monkeypatch.setattr(endpoint_resolver, "resolve_url", lambda url: url, raising=False)
|
||||
monkeypatch.setattr(model_routes, "_normalize_base", lambda url: url.rstrip("/"))
|
||||
|
||||
Reference in New Issue
Block a user