- Updated ProxyConfig.from_string to support multiple proxy formats, including URLs with credentials. - Deprecated the 'proxy' parameter in BrowserConfig, replacing it with 'proxy_config' for better flexibility. - Added warnings for deprecated usage and clarified behavior when both parameters are provided. - Updated documentation and tests to reflect changes in proxy configuration handling.
43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
import warnings
|
|
|
|
import pytest
|
|
|
|
from crawl4ai.async_configs import BrowserConfig, ProxyConfig
|
|
|
|
|
|
def test_browser_config_proxy_string_emits_deprecation_and_autoconverts():
|
|
warnings.simplefilter("always", DeprecationWarning)
|
|
|
|
proxy_str = "23.95.150.145:6114:username:password"
|
|
with warnings.catch_warnings(record=True) as caught:
|
|
cfg = BrowserConfig(proxy=proxy_str, headless=True)
|
|
|
|
dep_warnings = [w for w in caught if issubclass(w.category, DeprecationWarning)]
|
|
assert dep_warnings, "Expected DeprecationWarning when using BrowserConfig(proxy=...)"
|
|
|
|
assert cfg.proxy is None, "cfg.proxy should be None after auto-conversion"
|
|
assert isinstance(cfg.proxy_config, ProxyConfig), "cfg.proxy_config should be ProxyConfig instance"
|
|
assert cfg.proxy_config.username == "username"
|
|
assert cfg.proxy_config.password == "password"
|
|
assert cfg.proxy_config.server.startswith("http://")
|
|
assert cfg.proxy_config.server.endswith(":6114")
|
|
|
|
|
|
def test_browser_config_with_proxy_config_emits_no_deprecation():
|
|
warnings.simplefilter("always", DeprecationWarning)
|
|
|
|
with warnings.catch_warnings(record=True) as caught:
|
|
cfg = BrowserConfig(
|
|
headless=True,
|
|
proxy_config={
|
|
"server": "http://127.0.0.1:8080",
|
|
"username": "u",
|
|
"password": "p",
|
|
},
|
|
)
|
|
|
|
dep_warnings = [w for w in caught if issubclass(w.category, DeprecationWarning)]
|
|
assert not dep_warnings, "Did not expect DeprecationWarning when using proxy_config"
|
|
assert cfg.proxy is None
|
|
assert isinstance(cfg.proxy_config, ProxyConfig)
|