From 2e91cd7123c4d5e34811c309cfa64e46f5273c44 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 13 Jun 2026 18:57:44 -0400 Subject: [PATCH] test(minimax): add client instantiation unit tests to catch credential and base URL regressions --- tests/test_minimax_provider.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/test_minimax_provider.py b/tests/test_minimax_provider.py index 554043e1..f37f5afe 100644 --- a/tests/test_minimax_provider.py +++ b/tests/test_minimax_provider.py @@ -1,5 +1,6 @@ import unittest.mock from unittest.mock import patch, MagicMock +import pytest from src import ai_client def test_minimax_model_selection() -> None: @@ -62,3 +63,28 @@ def test_minimax_reasoning_extractor_omitted_when_caps_reasoning_false() -> None patch("src.ai_client._get_deepseek_tools", return_value=[]): ai_client._send_minimax("system", "user", ".", None, "", False, None, None, None) assert len(captured_kwargs) >= 1 + +def test_minimax_ensure_client_instantiation() -> None: + """Verify that _ensure_minimax_client instantiates the OpenAI client with correct credentials and base URL.""" + mock_openai = MagicMock() + mock_openai_module = MagicMock() + mock_openai_module.OpenAI = mock_openai + + with patch("src.ai_client._require_warmed", return_value=mock_openai_module), \ + patch("src.ai_client._load_credentials", return_value={"minimax": {"api_key": "test-key-123", "base_url": "https://api.minimax.io/v1"}}): + # Reset client state to force instantiation + ai_client._minimax_client = None + ai_client._ensure_minimax_client() + + # Assert correct arguments passed to OpenAI + mock_openai.assert_called_once_with(api_key="test-key-123", base_url="https://api.minimax.io/v1") + assert ai_client._minimax_client == mock_openai.return_value + +def test_minimax_ensure_client_missing_key_raises_value_error() -> None: + """Verify that _ensure_minimax_client raises ValueError if API key is missing.""" + mock_openai_module = MagicMock() + with patch("src.ai_client._require_warmed", return_value=mock_openai_module), \ + patch("src.ai_client._load_credentials", return_value={}): + ai_client._minimax_client = None + with pytest.raises(ValueError, match="MiniMax API key not found in credentials.toml"): + ai_client._ensure_minimax_client()