57 lines
2.3 KiB
Python
57 lines
2.3 KiB
Python
from ea_chatbot.config import Settings, LLMConfig
|
|
|
|
def test_default_settings():
|
|
"""Test that default settings are loaded correctly."""
|
|
settings = Settings()
|
|
|
|
# Check default config for query analyzer
|
|
assert isinstance(settings.query_analyzer_llm, LLMConfig)
|
|
assert settings.query_analyzer_llm.provider == "openai"
|
|
assert settings.query_analyzer_llm.model == "gpt-5-mini"
|
|
assert settings.query_analyzer_llm.temperature == 0.0
|
|
|
|
# Check default config for planner
|
|
assert isinstance(settings.planner_llm, LLMConfig)
|
|
assert settings.planner_llm.provider == "openai"
|
|
assert settings.planner_llm.model == "gpt-5-mini"
|
|
|
|
def test_env_override(monkeypatch):
|
|
"""Test that environment variables override defaults."""
|
|
monkeypatch.setenv("QUERY_ANALYZER_LLM__MODEL", "gpt-3.5-turbo")
|
|
monkeypatch.setenv("QUERY_ANALYZER_LLM__TEMPERATURE", "0.7")
|
|
|
|
settings = Settings()
|
|
assert settings.query_analyzer_llm.model == "gpt-3.5-turbo"
|
|
assert settings.query_analyzer_llm.temperature == 0.7
|
|
|
|
def test_provider_specific_params():
|
|
"""Test that provider specific parameters can be set."""
|
|
config = LLMConfig(
|
|
provider="openai",
|
|
model="o1-preview",
|
|
provider_specific={"reasoning_effort": "high"}
|
|
)
|
|
assert config.provider_specific["reasoning_effort"] == "high"
|
|
|
|
def test_oidc_settings(monkeypatch):
|
|
"""Test OIDC settings configuration."""
|
|
monkeypatch.setenv("OIDC_CLIENT_ID", "test_client_id")
|
|
monkeypatch.setenv("OIDC_CLIENT_SECRET", "test_client_secret")
|
|
monkeypatch.setenv("OIDC_SERVER_METADATA_URL", "https://test.server/.well-known/openid-configuration")
|
|
|
|
settings = Settings()
|
|
assert settings.oidc_client_id == "test_client_id"
|
|
assert settings.oidc_client_secret == "test_client_secret"
|
|
assert settings.oidc_server_metadata_url == "https://test.server/.well-known/openid-configuration"
|
|
|
|
def test_refresh_token_settings():
|
|
"""Test that refresh token settings are loaded correctly."""
|
|
settings = Settings()
|
|
assert settings.refresh_token_expire_days == 7
|
|
|
|
def test_refresh_token_env_override(monkeypatch):
|
|
"""Test that refresh token settings can be overridden by env vars."""
|
|
monkeypatch.setenv("REFRESH_TOKEN_EXPIRE_DAYS", "30")
|
|
settings = Settings()
|
|
assert settings.refresh_token_expire_days == 30
|