feat: implement mvp with email-first login flow and langgraph architecture

This commit is contained in:
Yunxiao Xu
2026-02-09 23:22:30 -08:00
parent af227d40e6
commit 5a943b902a
79 changed files with 8200 additions and 1 deletions

47
tests/test_config.py Normal file
View File

@@ -0,0 +1,47 @@
import pytest
from pydantic import ValidationError
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"