41 lines
1.8 KiB
Python
41 lines
1.8 KiB
Python
import asyncio
|
|
|
|
from app.api.llm_providers import _build_provider_payload, get_llm_provider_presets
|
|
|
|
|
|
def test_build_provider_payload_reads_env(monkeypatch) -> None:
|
|
monkeypatch.setenv("LLM_ROUTING_LOW_MODEL", "GLM-4.7")
|
|
monkeypatch.setenv("LLM_ROUTING_HIGH_MODEL", "MiniMax-M2.5")
|
|
monkeypatch.setenv("OPENAI_BASE_URL", "https://api.edgefn.net/v1")
|
|
monkeypatch.setenv("GLM_BASE_URL", "https://api.edgefn.net/v1")
|
|
monkeypatch.setenv("GLM_MODEL", "GLM-4.7")
|
|
monkeypatch.setenv("OPENAI_MODEL", "MiniMax-M2.5")
|
|
monkeypatch.setenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com/v1")
|
|
monkeypatch.setenv("DEEPSEEK_MODEL", "deepseek-chat")
|
|
monkeypatch.setenv("OLLAMA_BASE_URL", "http://host.docker.internal:11434")
|
|
monkeypatch.setenv("OLLAMA_MODEL", "llama3:latest")
|
|
|
|
payload = _build_provider_payload()
|
|
|
|
assert payload["low"] == "GLM-4.7"
|
|
assert payload["high"] == "MiniMax-M2.5"
|
|
assert payload["base_url"] == "https://api.edgefn.net/v1"
|
|
assert payload["providers"]["glm"]["api_env"] == "GLM_API_KEY"
|
|
assert payload["providers"]["openai"]["api_env"] == "OPENAI_API_KEY"
|
|
assert payload["providers"]["glm"]["model"] == "GLM-4.7"
|
|
assert payload["providers"]["openai"]["model"] == "MiniMax-M2.5"
|
|
|
|
|
|
def test_get_llm_provider_presets_returns_envelope(monkeypatch) -> None:
|
|
monkeypatch.setenv("LLM_ROUTING_LOW_MODEL", "GLM-4.7")
|
|
monkeypatch.setenv("LLM_ROUTING_HIGH_MODEL", "MiniMax-M2.5")
|
|
monkeypatch.setenv("OPENAI_BASE_URL", "https://api.edgefn.net/v1")
|
|
|
|
result = asyncio.run(get_llm_provider_presets(current_user=object()))
|
|
|
|
assert result["code"] == 0
|
|
assert result["message"] == "success"
|
|
assert isinstance(result["data"], dict)
|
|
assert result["data"]["low"] == "GLM-4.7"
|
|
assert result["data"]["high"] == "MiniMax-M2.5"
|