mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-26 07:42:21 +01:00
Squash Odysseus development history
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
from services.search import core, providers
|
||||
|
||||
PROVIDER_ENV_KEYS = (
|
||||
"DATA_BRAVE_API_KEY",
|
||||
"BRAVE_API_KEY",
|
||||
"GOOGLE_API_KEY",
|
||||
"TAVILY_API_KEY",
|
||||
"SERPER_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
def _config(monkeypatch, settings):
|
||||
for env_name in PROVIDER_ENV_KEYS:
|
||||
monkeypatch.delenv(env_name, raising=False)
|
||||
monkeypatch.setattr(core, "_get_search_settings", lambda: settings)
|
||||
monkeypatch.setattr(providers, "_get_search_settings", lambda: settings)
|
||||
return core.get_search_config()
|
||||
|
||||
|
||||
def test_search_config_detects_active_provider_specific_key(monkeypatch):
|
||||
config = _config(monkeypatch, {
|
||||
"search_provider": "tavily",
|
||||
"tavily_api_key": "tavily-key",
|
||||
})
|
||||
|
||||
assert config["has_api_key"] is True
|
||||
|
||||
|
||||
def test_search_config_ignores_key_for_different_provider(monkeypatch):
|
||||
config = _config(monkeypatch, {
|
||||
"search_provider": "brave",
|
||||
"tavily_api_key": "tavily-key",
|
||||
})
|
||||
|
||||
assert config["has_api_key"] is False
|
||||
|
||||
|
||||
def test_search_config_keeps_legacy_shared_key_fallback(monkeypatch):
|
||||
config = _config(monkeypatch, {
|
||||
"search_provider": "serper",
|
||||
"search_api_key": "legacy-key",
|
||||
})
|
||||
|
||||
assert config["has_api_key"] is True
|
||||
|
||||
|
||||
def test_search_config_detects_provider_env_key(monkeypatch):
|
||||
settings = {"search_provider": "tavily"}
|
||||
for env_name in PROVIDER_ENV_KEYS:
|
||||
monkeypatch.delenv(env_name, raising=False)
|
||||
monkeypatch.setenv("TAVILY_API_KEY", "env-key")
|
||||
monkeypatch.setattr(core, "_get_search_settings", lambda: settings)
|
||||
monkeypatch.setattr(providers, "_get_search_settings", lambda: settings)
|
||||
|
||||
assert core.get_search_config()["has_api_key"] is True
|
||||
assert providers._get_provider_key("tavily") == "env-key"
|
||||
|
||||
|
||||
def test_brave_accepts_standard_headless_env_key(monkeypatch):
|
||||
_config(monkeypatch, {"search_provider": "brave"})
|
||||
monkeypatch.setenv("BRAVE_API_KEY", "brave-headless-key")
|
||||
|
||||
assert providers._get_provider_key("brave") == "brave-headless-key"
|
||||
assert providers.provider_configured("brave") is True
|
||||
|
||||
|
||||
def test_explicit_headless_provider_overrides_persisted_default(monkeypatch):
|
||||
monkeypatch.setenv("ODYSSEUS_SEARCH_PROVIDER", "brave")
|
||||
monkeypatch.setattr("src.settings.load_settings", lambda: {"search_provider": "searxng"})
|
||||
|
||||
assert providers._get_search_settings()["search_provider"] == "brave"
|
||||
Reference in New Issue
Block a user