mirror of
https://github.com/crewAIInc/crewAI.git
synced 2025-12-16 04:18:35 +00:00
fix: resolve lint issues in Watson environment variable tests
- 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 <joao@crewai.com>
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user