diff --git a/tests/basic/test_main.py b/tests/basic/test_main.py index 1e9942c1a..0488f5a5b 100644 --- a/tests/basic/test_main.py +++ b/tests/basic/test_main.py @@ -687,12 +687,18 @@ class TestMain(TestCase): @patch("aider.models.ModelInfoManager.set_verify_ssl") def test_no_verify_ssl_sets_model_info_manager(self, mock_set_verify_ssl): with GitTemporaryDirectory(): - main( - ["--no-verify-ssl", "--exit", "--yes"], - input=DummyInput(), - output=DummyOutput(), - ) - mock_set_verify_ssl.assert_called_once_with(False) + # Mock Model class to avoid actual model initialization + with patch("aider.models.Model") as mock_model: + # Configure the mock to avoid the TypeError + mock_model.return_value.info = {} + mock_model.return_value.validate_environment.return_value = {"missing_keys": [], "keys_in_environment": []} + + main( + ["--no-verify-ssl", "--exit", "--yes"], + input=DummyInput(), + output=DummyOutput(), + ) + mock_set_verify_ssl.assert_called_once_with(False) def test_pytest_env_vars(self): # Verify that environment variables from pytest.ini are properly set diff --git a/tests/basic/test_ssl_verification.py b/tests/basic/test_ssl_verification.py index 8f2707fd6..ea12ec267 100644 --- a/tests/basic/test_ssl_verification.py +++ b/tests/basic/test_ssl_verification.py @@ -19,7 +19,7 @@ class TestSSLVerification(TestCase): os.environ.clear() os.environ.update(self.original_env) - @patch("aider.models.model_info_manager.set_verify_ssl") + @patch("aider.models.ModelInfoManager.set_verify_ssl") @patch("aider.llm.litellm._load_litellm") @patch("httpx.Client") @patch("httpx.AsyncClient") @@ -29,23 +29,30 @@ class TestSSLVerification(TestCase): # Mock the litellm._lazy_module to avoid AttributeError mock_load_litellm.return_value = None mock_module = MagicMock() - with patch("aider.llm.litellm._lazy_module", mock_module): - # Run main with --no-verify-ssl flag - main( - ["--no-verify-ssl", "--exit", "--yes"], - input=DummyInput(), - output=DummyOutput(), - ) - - # Verify model_info_manager.set_verify_ssl was called with False - mock_set_verify_ssl.assert_called_once_with(False) - - # Verify httpx clients were created with verify=False - mock_client.assert_called_once_with(verify=False) - mock_async_client.assert_called_once_with(verify=False) - - # Verify SSL_VERIFY environment variable was set to empty string - self.assertEqual(os.environ.get("SSL_VERIFY"), "") + + # Mock Model class to avoid actual model initialization + with patch("aider.models.Model") as mock_model: + # Configure the mock to avoid the TypeError + mock_model.return_value.info = {} + mock_model.return_value.validate_environment.return_value = {"missing_keys": [], "keys_in_environment": []} + + with patch("aider.llm.litellm._lazy_module", mock_module): + # Run main with --no-verify-ssl flag + main( + ["--no-verify-ssl", "--exit", "--yes"], + input=DummyInput(), + output=DummyOutput(), + ) + + # Verify model_info_manager.set_verify_ssl was called with False + mock_set_verify_ssl.assert_called_once_with(False) + + # Verify httpx clients were created with verify=False + mock_client.assert_called_once_with(verify=False) + mock_async_client.assert_called_once_with(verify=False) + + # Verify SSL_VERIFY environment variable was set to empty string + self.assertEqual(os.environ.get("SSL_VERIFY"), "") @patch("aider.models.model_info_manager.set_verify_ssl") def test_default_ssl_verification(self, mock_set_verify_ssl):