Cover active vision model API keys
Alessandro committed
Aug 25, 2026 at 19:25 UTC
2ab8644859c25e04809533128d606d20e1e83779
1 file changed
+30
tests/test_model_config_api_keys.py
+30
@@ -89,6 +89,36 @@ def test_chat_model_configured_requires_identity_and_key(monkeypatch):
89
)
90
91
92
+def test_missing_api_key_checks_only_the_active_vision_model(monkeypatch):
93
+ from plugins._model_config.helpers import model_config
94
+
95
+ config = {
96
+ "chat_model": {"provider": "ollama", "name": "text-main"},
97
+ "vision_model": {"provider": "openai", "name": "vision"},
98
+ "utility_model": {"provider": "ollama", "name": "utility"},
99
+ "embedding_model": {
100
+ "provider": "huggingface",
101
+ "name": "sentence-transformers/all-MiniLM-L6-v2",
102
+ },
103
+ }
104
+ active = False
105
+ monkeypatch.setattr(model_config, "get_effective_config", lambda _agent=None: config)
106
+ monkeypatch.setattr(
107
+ model_config,
108
+ "get_embedding_model_config",
109
+ lambda _agent=None: config["embedding_model"],
110
+ )
111
+ monkeypatch.setattr(model_config, "use_vision_sidecar", lambda _agent=None: active)
112
+ monkeypatch.setattr(model_config, "has_provider_api_key", lambda *args: False)
113
+
114
+ assert model_config.get_missing_api_key_providers() == []
115
+
116
+ active = True
117
+ assert model_config.get_missing_api_key_providers() == [
118
+ {"model_type": "Vision Model", "provider": "openai"}
119
+ ]
120
+
121
+
122
@pytest.mark.asyncio
123
async def test_missing_api_key_banner_exposes_only_effective_missing_providers(monkeypatch):
124
from plugins._model_config.helpers import model_config