@@ -203,25 +203,6 @@ def test_on_applies_custom_overrides(self, config_manager):
203203 assert cfg ['CONVERSATION_MODEL' ] == 'custom-model-123'
204204 assert cfg ['CONVERSATION_MODEL_API_KEY' ] == 'sk-custom-conv'
205205
206- @pytest .mark .unit
207- def test_model_vision_override_marks_custom_model_capability (self , config_manager ):
208- """Explicit modelVisionOverrides should win before model-name sniffing."""
209- _write_core_config (config_manager , {
210- 'coreApiKey' : 'sk-core' ,
211- 'coreApi' : 'qwen' ,
212- 'assistApi' : 'qwen' ,
213- 'enableCustomApi' : True ,
214- 'conversationModelUrl' : 'https://custom.example.com/v1' ,
215- 'conversationModelId' : 'local-multimodal' ,
216- 'conversationModelApiKey' : 'sk-custom-conv' ,
217- 'modelVisionOverrides' : {'local-multimodal' : True },
218- })
219-
220- cfg = config_manager .get_model_api_config ('conversation' )
221-
222- assert cfg ['model' ] == 'local-multimodal'
223- assert cfg ['supports_vision' ] is True
224-
225206 @pytest .mark .unit
226207 def test_on_applies_all_model_types (self , config_manager ):
227208 """enableCustomApi=true → all 8 model types can be overridden."""
@@ -374,7 +355,9 @@ def test_core_only_has_realtime_providers(self):
374355 from utils .api_config_loader import get_core_api_profiles
375356 core_profiles = get_core_api_profiles ()
376357
377- expected_core = {'free' , 'qwen' , 'qwen_intl' , 'openai' , 'step' , 'gemini' , 'glm' }
358+ # grok joined core as a realtime voice provider (Grok Voice, wss
359+ # endpoint) in PR #1306 — it has a core_url, so it belongs here.
360+ expected_core = {'free' , 'qwen' , 'qwen_intl' , 'openai' , 'step' , 'gemini' , 'glm' , 'grok' }
378361 actual_core = set (core_profiles .keys ())
379362
380363 assert actual_core == expected_core , (
@@ -399,9 +382,12 @@ def test_text_only_providers_not_in_core(self):
399382 from utils .api_config_loader import get_core_api_profiles
400383 core_profiles = get_core_api_profiles ()
401384
385+ # grok has a realtime voice endpoint (Grok Voice, PR #1306) so it is
386+ # intentionally also a core provider — only truly text-only providers
387+ # are listed here.
402388 must_not_be_core = [
403389 'deepseek' , 'doubao' , 'minimax' , 'minimax_intl' ,
404- 'kimi' , 'grok' , ' silicon' ,
390+ 'kimi' , 'silicon' ,
405391 ]
406392 for provider in must_not_be_core :
407393 assert provider not in core_profiles , (
0 commit comments