Merge pull request #922 from ScrapeGraphAI/pre/beta

Pre/beta
This commit is contained in:
Marco Vinciguerra 2025-02-13 12:17:05 +01:00 committed by GitHub
commit 8472481323
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,51 +1,32 @@
import urllib.parse
import pytest
from unittest.mock import patch, Mock
from scrapegraphai.docloaders.scrape_do import scrape_do_fetch
from unittest.mock import Mock, patch
class TestScrapeDoFetch:
@patch('scrapegraphai.docloaders.scrape_do.requests.get')
@patch('scrapegraphai.docloaders.scrape_do.os.getenv')
def test_scrape_do_fetch_with_proxy_geocode_and_super_proxy(self, mock_getenv, mock_get):
"""
Test scrape_do_fetch function with proxy mode, geoCode, and super_proxy enabled.
This test verifies that the function correctly handles proxy settings,
geoCode parameter, and super_proxy flag when making a request.
"""
# Mock environment variable
mock_getenv.return_value = "proxy.scrape.do:8080"
# Mock the response
def test_scrape_do_fetch_without_proxy():
"""
Test scrape_do_fetch function using API mode (without proxy).
This test verifies that:
1. The function correctly uses the API mode when use_proxy is False.
2. The correct URL is constructed with the token and encoded target URL.
3. The function returns the expected response text.
"""
token = "test_token"
target_url = "https://example.com"
encoded_url = urllib.parse.quote(target_url)
expected_response = "Mocked API response"
with patch("requests.get") as mock_get:
mock_response = Mock()
mock_response.text = "Mocked response content"
mock_response.text = expected_response
mock_get.return_value = mock_response
# Test parameters
token = "test_token"
target_url = "https://example.com"
use_proxy = True
geoCode = "US"
super_proxy = True
result = scrape_do_fetch(token, target_url, use_proxy=False)
# Call the function
result = scrape_do_fetch(token, target_url, use_proxy, geoCode, super_proxy)
expected_url = f"http://api.scrape.do?token={token}&url={encoded_url}"
mock_get.assert_called_once_with(expected_url)
# Assertions
assert result == "Mocked response content"
mock_get.assert_called_once()
call_args = mock_get.call_args
assert result == expected_response
# Check if the URL is correct
assert call_args[0][0] == target_url
# Check if proxies are set correctly
assert call_args[1]['proxies'] == {
"http": f"http://{token}:@proxy.scrape.do:8080",
"https": f"http://{token}:@proxy.scrape.do:8080",
}
# Check if verify is False
assert call_args[1]['verify'] is False
# Check if params are set correctly
assert call_args[1]['params'] == {"geoCode": "US", "super": "true"}