mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-28 23:52:09 -04:00
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
"""Provider endpoint auth-header tests.
|
|
|
|
Covers ``build_headers`` for every provider: Anthropic (x-api-key + version
|
|
header), OpenAI-style providers (Bearer token), OpenRouter (Bearer + attribution
|
|
headers), and the no-key case.
|
|
"""
|
|
import pytest
|
|
|
|
from src import endpoint_resolver as er
|
|
|
|
|
|
def test_headers_anthropic_uses_x_api_key():
|
|
h = er.build_headers("secret", "https://api.anthropic.com")
|
|
assert h["x-api-key"] == "secret"
|
|
assert h["anthropic-version"] == "2023-06-01"
|
|
assert "Authorization" not in h
|
|
|
|
|
|
def test_headers_anthropic_without_key_still_sends_version():
|
|
h = er.build_headers(None, "https://api.anthropic.com")
|
|
assert h["anthropic-version"] == "2023-06-01"
|
|
assert "x-api-key" not in h
|
|
|
|
|
|
@pytest.mark.parametrize("base", [
|
|
"https://api.openai.com/v1",
|
|
"https://api.x.ai/v1",
|
|
"https://api.deepseek.com",
|
|
"https://api.groq.com/openai/v1",
|
|
"https://integrate.api.nvidia.com/v1",
|
|
"https://generativelanguage.googleapis.com/v1beta/openai",
|
|
])
|
|
def test_headers_openai_style_use_bearer(base):
|
|
h = er.build_headers("secret", base)
|
|
assert h["Authorization"] == "Bearer secret"
|
|
assert "HTTP-Referer" not in h
|
|
assert "x-api-key" not in h
|
|
|
|
|
|
def test_headers_openrouter_adds_attribution():
|
|
h = er.build_headers("secret", "https://openrouter.ai/api/v1")
|
|
assert h["Authorization"] == "Bearer secret"
|
|
# OpenRouter ranks/labels apps via these headers.
|
|
assert h["HTTP-Referer"].startswith("https://github.com/")
|
|
assert h["X-OpenRouter-Title"] == "Odysseus"
|
|
|
|
|
|
def test_headers_omit_authorization_when_no_key():
|
|
assert er.build_headers(None, "https://api.openai.com/v1") == {}
|