From 4af216bf40ddfa66535661ef1781439ca0830acf Mon Sep 17 00:00:00 2001 From: Zio Gabber <78922322+Gabrymi93@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:12:51 +0100 Subject: [PATCH 1/3] fix: _get_proxy_from_env cerca anche BLOCKED_SOURCE_PROXY --- toolkit/plugins/http_file.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/toolkit/plugins/http_file.py b/toolkit/plugins/http_file.py index 856d240..efa2508 100644 --- a/toolkit/plugins/http_file.py +++ b/toolkit/plugins/http_file.py @@ -90,8 +90,12 @@ def _sanitize_proxy_url(proxy: str) -> str: def _get_proxy_from_env() -> str | None: - """Legge HTTPS_PROXY dall'ambiente (lowercase/uppercase).""" - return os.environ.get("HTTPS_PROXY") or os.environ.get("https_proxy") + """Legge HTTPS_PROXY o BLOCKED_SOURCE_PROXY dall'ambiente.""" + return ( + os.environ.get("HTTPS_PROXY") + or os.environ.get("https_proxy") + or os.environ.get("BLOCKED_SOURCE_PROXY") + ) def _fetch_via_curl( From 490a52a5456a3c88aee82ab046b17ec67b3b27b7 Mon Sep 17 00:00:00 2001 From: Zio Gabber <78922322+Gabrymi93@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:25:20 +0100 Subject: [PATCH 2/3] =?UTF-8?q?test:=20regressione=20BLOCKED=5FSOURCE=5FPR?= =?UTF-8?q?OXY=20+=20timeout=20=E2=86=92=20curl=20fallback=20(#414)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_http_file_plugin.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/test_http_file_plugin.py b/tests/test_http_file_plugin.py index 7521351..c41d633 100644 --- a/tests/test_http_file_plugin.py +++ b/tests/test_http_file_plugin.py @@ -281,16 +281,34 @@ def test_fallback_on_timeout_with_proxy(self): err=TimeoutError("connect timed out"), ssl_fallback_used=False, ) - source = HttpFileSource(retries=1) source._client = fake - with mock.patch.dict(os.environ, {"HTTPS_PROXY": "http://proxy:8888"}): with mock.patch( "toolkit.plugins.http_file._fetch_via_curl", return_value=b"curl-data", ) as mock_curl: payload = source.fetch("https://example.test/data.csv") + assert payload == b"curl-data" + mock_curl.assert_called_once() + @pytest.mark.contract + @pytest.mark.regression # toolkit#414 + def test_fallback_with_blocked_source_proxy(self): + """BLOCKED_SOURCE_PROXY → curl fallback (no HTTPS_PROXY).""" + fake = FakeHttpClient() + fake.responses["https://example.test/data.csv"] = HttpResult( + response=None, + err=TimeoutError("connect timed out"), + ssl_fallback_used=False, + ) + source = HttpFileSource(retries=1) + source._client = fake + with mock.patch.dict(os.environ, {"BLOCKED_SOURCE_PROXY": "http://proxy:8888"}, clear=True): + with mock.patch( + "toolkit.plugins.http_file._fetch_via_curl", + return_value=b"curl-data", + ) as mock_curl: + payload = source.fetch("https://example.test/data.csv") assert payload == b"curl-data" mock_curl.assert_called_once() From dc8cf1ad5b8a9ee06ad1647df3764e2634995be4 Mon Sep 17 00:00:00 2001 From: Zio Gabber <78922322+Gabrymi93@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:27:12 +0100 Subject: [PATCH 3/3] test: _get_proxy_from_env legge BLOCKED_SOURCE_PROXY --- tests/test_http_file_plugin.py | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/tests/test_http_file_plugin.py b/tests/test_http_file_plugin.py index c41d633..2f067e0 100644 --- a/tests/test_http_file_plugin.py +++ b/tests/test_http_file_plugin.py @@ -18,6 +18,7 @@ from toolkit.core.exceptions import DownloadError from toolkit.plugins.http_file import ( HttpFileSource, + _get_proxy_from_env, _sanitize_proxy_url, _parse_curl_status, _strip_curl_status, @@ -294,21 +295,7 @@ def test_fallback_on_timeout_with_proxy(self): @pytest.mark.contract @pytest.mark.regression # toolkit#414 - def test_fallback_with_blocked_source_proxy(self): - """BLOCKED_SOURCE_PROXY → curl fallback (no HTTPS_PROXY).""" - fake = FakeHttpClient() - fake.responses["https://example.test/data.csv"] = HttpResult( - response=None, - err=TimeoutError("connect timed out"), - ssl_fallback_used=False, - ) - source = HttpFileSource(retries=1) - source._client = fake + def test_get_proxy_env_blocked_source(self): + """_get_proxy_from_env legge BLOCKED_SOURCE_PROXY.""" with mock.patch.dict(os.environ, {"BLOCKED_SOURCE_PROXY": "http://proxy:8888"}, clear=True): - with mock.patch( - "toolkit.plugins.http_file._fetch_via_curl", - return_value=b"curl-data", - ) as mock_curl: - payload = source.fetch("https://example.test/data.csv") - assert payload == b"curl-data" - mock_curl.assert_called_once() + assert _get_proxy_from_env() == "http://proxy:8888"