Files
ZNJJ-api-server/test/core/test_config.py
2026-07-27 17:21:29 +08:00

79 lines
2.3 KiB
Python

import pytest
from pydantic import ValidationError
from src.core.config import Settings
def test_fastgpt_backend_accepts_legacy_environment_names():
settings = Settings(
_env_file=None,
ZNJJ_ENVIRONMENT="test",
AGENT_BACKEND="fastgpt",
ANALYSIS_AUTH_TOKEN="test-fastgpt-key",
ANALYSIS_SERVICE_URL="http://fastgpt.test",
APP_ID="test-app",
)
assert settings.environment == "test"
assert settings.agent_backend == "fastgpt"
assert settings.has_fastgpt_config
assert settings.fastgpt_api_key.get_secret_value() == "test-fastgpt-key"
def test_fastgpt_backend_rejects_incomplete_configuration():
with pytest.raises(ValidationError, match="FastGPT backend requires"):
Settings(
_env_file=None,
environment="test",
agent_backend="fastgpt",
fastgpt_api_key="test-key",
)
def test_langgraph_backend_requires_only_minimal_llm_configuration():
settings = Settings(
_env_file=None,
environment="test",
agent_backend="langgraph",
langgraph_checkpointer="memory",
llm_api_key="test-llm-key",
llm_model="test-model",
)
assert settings.agent_backend == "langgraph"
assert settings.langgraph_checkpointer == "memory"
assert not settings.has_fastgpt_config
def test_langgraph_backend_rejects_missing_llm_configuration():
with pytest.raises(ValidationError, match="LLM_API_KEY, LLM_MODEL"):
Settings(
_env_file=None,
environment="test",
agent_backend="langgraph",
)
def test_production_cannot_use_memory_checkpointer():
with pytest.raises(ValidationError, match="cannot use the memory checkpointer"):
Settings(
_env_file=None,
environment="production",
agent_backend="langgraph",
langgraph_checkpointer="memory",
llm_api_key="test-llm-key",
llm_model="test-model",
)
def test_secret_values_are_masked_in_settings_repr():
settings = Settings(
_env_file=None,
environment="test",
agent_backend="langgraph",
llm_api_key="never-print-this-key",
llm_model="test-model",
)
assert "never-print-this-key" not in repr(settings)