legco_ai_assistant/backend/app/test/test_phase2_config.py

64 lines
2.4 KiB
Python

"""Phase 2 config tests: ASR and video settings."""
import pytest
def test_config_asr_defaults(monkeypatch, tmp_path):
monkeypatch.delenv("DASHSCOPE_API_KEY", raising=False)
monkeypatch.delenv("ASR_MODEL_NAME", raising=False)
monkeypatch.delenv("ASR_REALTIME_MODEL_NAME", raising=False)
monkeypatch.setenv("LLM_API_KEY", "sk-test")
monkeypatch.setenv("DP_API_KEY", "sk-test")
monkeypatch.setenv("EMBEDDING_API_KEY", "sk-test")
env_file = tmp_path / ".env"
env_file.write_text("")
monkeypatch.chdir(tmp_path)
from app.core.config import Settings, get_settings
get_settings.cache_clear()
settings = Settings(_env_file=())
assert settings.dashscope_api_key == ""
assert settings.asr_model_name == "qwen3-asr-flash"
assert settings.asr_realtime_model_name == "qwen3-asr-flash-realtime"
def test_config_video_defaults(monkeypatch, tmp_path):
monkeypatch.delenv("VIDEO_UPLOAD_DIR", raising=False)
monkeypatch.delenv("MAX_VIDEO_SIZE_MB", raising=False)
monkeypatch.setenv("LLM_API_KEY", "sk-test")
monkeypatch.setenv("DP_API_KEY", "sk-test")
monkeypatch.setenv("EMBEDDING_API_KEY", "sk-test")
env_file = tmp_path / ".env"
env_file.write_text("")
monkeypatch.chdir(tmp_path)
from app.core.config import Settings, get_settings
get_settings.cache_clear()
settings = Settings(_env_file=())
assert settings.video_upload_dir == "./uploads"
assert settings.max_video_size_mb == 300
assert ".mp4" in settings.supported_video_formats
def test_config_loads_from_env(tmp_path, monkeypatch):
env_file = tmp_path / ".env"
env_file.write_text(
"DASHSCOPE_API_KEY=sk-test-key\n"
"ASR_MODEL_NAME=qwen3-asr-flash\n"
"ASR_REALTIME_MODEL_NAME=qwen3-asr-flash-realtime\n"
"VIDEO_UPLOAD_DIR=./test_uploads\n"
"MAX_VIDEO_SIZE_MB=500\n"
"LLM_API_KEY=sk-test\n"
"DP_API_KEY=sk-test\n"
"EMBEDDING_API_KEY=sk-test\n"
)
monkeypatch.chdir(tmp_path)
from app.core.config import Settings, get_settings
get_settings.cache_clear()
settings = Settings()
assert settings.dashscope_api_key == "sk-test-key"
assert settings.asr_model_name == "qwen3-asr-flash"
assert settings.asr_realtime_model_name == "qwen3-asr-flash-realtime"
assert settings.video_upload_dir == "./test_uploads"
assert settings.max_video_size_mb == 500