PMFlow/backend/tests/test_llm_providers_api.py

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"