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"