From 3b046c4881a35a5aa2b03edca9fa8c1079f7d98c Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 26 Sep 2025 09:45:47 +0000 Subject: [PATCH] fix: resolve lint issues in Watson environment variable tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add noqa comments for hardcoded password warnings (S105) - Change Exception to ValueError for specific exception handling (B017) - Maintains all test functionality while passing lint checks Co-Authored-By: João --- .../providers/ibm/test_watson_env_vars.py | 134 +++++++++++------- 1 file changed, 83 insertions(+), 51 deletions(-) diff --git a/tests/rag/embeddings/providers/ibm/test_watson_env_vars.py b/tests/rag/embeddings/providers/ibm/test_watson_env_vars.py index f9c2c5d02..e86330579 100644 --- a/tests/rag/embeddings/providers/ibm/test_watson_env_vars.py +++ b/tests/rag/embeddings/providers/ibm/test_watson_env_vars.py @@ -2,7 +2,9 @@ import os from unittest.mock import patch + import pytest + from crewai.rag.embeddings.providers.ibm.watson import WatsonProvider @@ -11,12 +13,16 @@ class TestWatsonEnvironmentVariables: def test_watsonx_prefix_variables(self): """Test that WATSONX_ prefixed variables work correctly.""" - with patch.dict(os.environ, { - "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", - "WATSONX_APIKEY": "test-api-key", - "WATSONX_PROJECT_ID": "test-project-id", - "WATSONX_MODEL_ID": "ibm/slate-125m-english-rtrvr" - }, clear=True): + with patch.dict( + os.environ, + { + "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", + "WATSONX_APIKEY": "test-api-key", + "WATSONX_PROJECT_ID": "test-project-id", + "WATSONX_MODEL_ID": "ibm/slate-125m-english-rtrvr", + }, + clear=True, + ): provider = WatsonProvider() assert provider.url == "https://us-south.ml.cloud.ibm.com" assert provider.api_key == "test-api-key" @@ -25,12 +31,16 @@ class TestWatsonEnvironmentVariables: def test_watson_prefix_backward_compatibility(self): """Test that legacy WATSON_ prefixed variables still work.""" - with patch.dict(os.environ, { - "WATSON_URL": "https://us-south.ml.cloud.ibm.com", - "WATSON_API_KEY": "test-api-key", - "WATSON_PROJECT_ID": "test-project-id", - "WATSON_MODEL_ID": "ibm/slate-125m-english-rtrvr" - }, clear=True): + with patch.dict( + os.environ, + { + "WATSON_URL": "https://us-south.ml.cloud.ibm.com", + "WATSON_API_KEY": "test-api-key", + "WATSON_PROJECT_ID": "test-project-id", + "WATSON_MODEL_ID": "ibm/slate-125m-english-rtrvr", + }, + clear=True, + ): provider = WatsonProvider() assert provider.url == "https://us-south.ml.cloud.ibm.com" assert provider.api_key == "test-api-key" @@ -39,16 +49,20 @@ class TestWatsonEnvironmentVariables: def test_watsonx_takes_precedence_over_watson(self): """Test that WATSONX_ variables take precedence over WATSON_ when both are set.""" - with patch.dict(os.environ, { - "WATSONX_URL": "https://new-url.com", - "WATSON_URL": "https://old-url.com", - "WATSONX_APIKEY": "new-key", - "WATSON_API_KEY": "old-key", - "WATSONX_PROJECT_ID": "new-project", - "WATSON_PROJECT_ID": "old-project", - "WATSONX_MODEL_ID": "new-model", - "WATSON_MODEL_ID": "old-model" - }, clear=True): + with patch.dict( + os.environ, + { + "WATSONX_URL": "https://new-url.com", + "WATSON_URL": "https://old-url.com", + "WATSONX_APIKEY": "new-key", + "WATSON_API_KEY": "old-key", + "WATSONX_PROJECT_ID": "new-project", + "WATSON_PROJECT_ID": "old-project", + "WATSONX_MODEL_ID": "new-model", + "WATSON_MODEL_ID": "old-model", + }, + clear=True, + ): provider = WatsonProvider() assert provider.url == "https://new-url.com" assert provider.api_key == "new-key" @@ -57,12 +71,16 @@ class TestWatsonEnvironmentVariables: def test_mixed_environment_variables(self): """Test that mixing WATSONX_ and WATSON_ variables works correctly.""" - with patch.dict(os.environ, { - "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", - "WATSON_API_KEY": "test-api-key", - "WATSONX_PROJECT_ID": "test-project-id", - "WATSON_MODEL_ID": "ibm/slate-125m-english-rtrvr" - }, clear=True): + with patch.dict( + os.environ, + { + "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", + "WATSON_API_KEY": "test-api-key", + "WATSONX_PROJECT_ID": "test-project-id", + "WATSON_MODEL_ID": "ibm/slate-125m-english-rtrvr", + }, + clear=True, + ): provider = WatsonProvider() assert provider.url == "https://us-south.ml.cloud.ibm.com" assert provider.api_key == "test-api-key" @@ -71,38 +89,52 @@ class TestWatsonEnvironmentVariables: def test_token_environment_variables(self): """Test that token environment variables work with both prefixes.""" - with patch.dict(os.environ, { - "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", - "WATSONX_APIKEY": "test-api-key", - "WATSONX_PROJECT_ID": "test-project-id", - "WATSONX_MODEL_ID": "ibm/slate-125m-english-rtrvr", - "WATSONX_TOKEN": "test-token" - }, clear=True): + with patch.dict( + os.environ, + { + "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", + "WATSONX_APIKEY": "test-api-key", + "WATSONX_PROJECT_ID": "test-project-id", + "WATSONX_MODEL_ID": "ibm/slate-125m-english-rtrvr", + "WATSONX_TOKEN": "test-token", + }, + clear=True, + ): provider = WatsonProvider() - assert provider.token == "test-token" + assert provider.token == "test-token" # noqa: S105 - with patch.dict(os.environ, { - "WATSON_URL": "https://us-south.ml.cloud.ibm.com", - "WATSON_API_KEY": "test-api-key", - "WATSON_PROJECT_ID": "test-project-id", - "WATSON_MODEL_ID": "ibm/slate-125m-english-rtrvr", - "WATSON_TOKEN": "legacy-token" - }, clear=True): + with patch.dict( + os.environ, + { + "WATSON_URL": "https://us-south.ml.cloud.ibm.com", + "WATSON_API_KEY": "test-api-key", + "WATSON_PROJECT_ID": "test-project-id", + "WATSON_MODEL_ID": "ibm/slate-125m-english-rtrvr", + "WATSON_TOKEN": "legacy-token", + }, + clear=True, + ): provider = WatsonProvider() - assert provider.token == "legacy-token" + assert provider.token == "legacy-token" # noqa: S105 def test_validation_error_when_required_fields_missing(self): """Test that validation errors are raised when required fields are missing.""" with patch.dict(os.environ, {}, clear=True): - with pytest.raises(Exception): + with pytest.raises(ValueError): WatsonProvider() def test_space_or_project_validation(self): """Test that either space_id or project_id must be provided.""" - with patch.dict(os.environ, { - "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", - "WATSONX_APIKEY": "test-api-key", - "WATSONX_MODEL_ID": "ibm/slate-125m-english-rtrvr" - }, clear=True): - with pytest.raises(ValueError, match="One of 'space_id' or 'project_id' must be provided"): + with patch.dict( + os.environ, + { + "WATSONX_URL": "https://us-south.ml.cloud.ibm.com", + "WATSONX_APIKEY": "test-api-key", + "WATSONX_MODEL_ID": "ibm/slate-125m-english-rtrvr", + }, + clear=True, + ): + with pytest.raises( + ValueError, match="One of 'space_id' or 'project_id' must be provided" + ): WatsonProvider()