48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
from app.config import load_api_config
|
||
|
|
|
||
|
|
|
||
|
|
def test_load_api_config_selects_default_provider(tmp_path: Path) -> None:
|
||
|
|
config_path = tmp_path / "api_config.yaml"
|
||
|
|
config_path.write_text(
|
||
|
|
"""
|
||
|
|
default_provider: intranet
|
||
|
|
providers:
|
||
|
|
intranet:
|
||
|
|
api_key: EMPTY
|
||
|
|
base_url: http://model.local/v1
|
||
|
|
max_tokens: 1024
|
||
|
|
model: qwen3-coder
|
||
|
|
temperature: 0.2
|
||
|
|
""".strip(),
|
||
|
|
encoding="utf-8",
|
||
|
|
)
|
||
|
|
|
||
|
|
settings = load_api_config(config_path)
|
||
|
|
|
||
|
|
assert settings.provider_name == "intranet"
|
||
|
|
assert settings.provider.model == "qwen3-coder"
|
||
|
|
assert settings.provider.chat_completions_url == "http://model.local/v1/chat/completions"
|
||
|
|
|
||
|
|
|
||
|
|
def test_load_api_config_accepts_full_chat_completions_url(tmp_path: Path) -> None:
|
||
|
|
config_path = tmp_path / "api_config.yaml"
|
||
|
|
config_path.write_text(
|
||
|
|
"""
|
||
|
|
default_provider: deepseek
|
||
|
|
providers:
|
||
|
|
deepseek:
|
||
|
|
api_key: key
|
||
|
|
base_url: https://api.deepseek.com/v1/chat/completions
|
||
|
|
max_tokens: 4000
|
||
|
|
model: deepseek-chat
|
||
|
|
temperature: 0.7
|
||
|
|
""".strip(),
|
||
|
|
encoding="utf-8",
|
||
|
|
)
|
||
|
|
|
||
|
|
settings = load_api_config(config_path, provider_name="deepseek")
|
||
|
|
|
||
|
|
assert settings.provider.chat_completions_url == "https://api.deepseek.com/v1/chat/completions"
|