mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-12 09:38:31 +00:00
* feat: add crewai-tools workspace structure * Squashed 'temp-crewai-tools/' content from commit 9bae5633 git-subtree-dir: temp-crewai-tools git-subtree-split: 9bae56339096cb70f03873e600192bd2cd207ac9 * feat: configure crewai-tools workspace package with dependencies * fix: apply ruff auto-formatting to crewai-tools code * chore: update lockfile * fix: don't allow tool tests yet * fix: comment out extra pytest flags for now * fix: remove conflicting conftest.py from crewai-tools tests * fix: resolve dependency conflicts and test issues - Pin vcrpy to 7.0.0 to fix pytest-recording compatibility - Comment out types-requests to resolve urllib3 conflict - Update requests requirement in crewai-tools to >=2.32.0
64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
from unittest.mock import Mock, patch
|
|
|
|
from crewai_tools.tools.brightdata_tool.brightdata_unlocker import (
|
|
BrightDataWebUnlockerTool,
|
|
)
|
|
import requests
|
|
|
|
|
|
@patch.dict(
|
|
"os.environ",
|
|
{"BRIGHT_DATA_API_KEY": "test_api_key", "BRIGHT_DATA_ZONE": "test_zone"},
|
|
)
|
|
@patch("crewai_tools.tools.brightdata_tool.brightdata_unlocker.requests.post")
|
|
def test_run_success_html(mock_post):
|
|
mock_response = Mock()
|
|
mock_response.status_code = 200
|
|
mock_response.text = "<html><body>Test</body></html>"
|
|
mock_response.raise_for_status = Mock()
|
|
mock_post.return_value = mock_response
|
|
|
|
tool = BrightDataWebUnlockerTool()
|
|
result = tool._run(url="https://example.com", format="html", save_file=False)
|
|
|
|
print(result)
|
|
|
|
|
|
@patch.dict(
|
|
"os.environ",
|
|
{"BRIGHT_DATA_API_KEY": "test_api_key", "BRIGHT_DATA_ZONE": "test_zone"},
|
|
)
|
|
@patch("crewai_tools.tools.brightdata_tool.brightdata_unlocker.requests.post")
|
|
def test_run_success_json(mock_post):
|
|
mock_response = Mock()
|
|
mock_response.status_code = 200
|
|
mock_response.text = "mock response text"
|
|
mock_response.raise_for_status = Mock()
|
|
mock_post.return_value = mock_response
|
|
|
|
tool = BrightDataWebUnlockerTool()
|
|
result = tool._run(url="https://example.com", format="json")
|
|
|
|
assert isinstance(result, str)
|
|
|
|
|
|
@patch.dict(
|
|
"os.environ",
|
|
{"BRIGHT_DATA_API_KEY": "test_api_key", "BRIGHT_DATA_ZONE": "test_zone"},
|
|
)
|
|
@patch("crewai_tools.tools.brightdata_tool.brightdata_unlocker.requests.post")
|
|
def test_run_http_error(mock_post):
|
|
mock_response = Mock()
|
|
mock_response.status_code = 403
|
|
mock_response.text = "Forbidden"
|
|
mock_response.raise_for_status.side_effect = requests.HTTPError(
|
|
response=mock_response
|
|
)
|
|
mock_post.return_value = mock_response
|
|
|
|
tool = BrightDataWebUnlockerTool()
|
|
result = tool._run(url="https://example.com")
|
|
|
|
assert "HTTP Error" in result
|
|
assert "Forbidden" in result
|