fix(proxies): return None for unservable queries and repair live providers

Basic, NordVPN, Windscribe, Gluetun and Hola no longer raise on a query they cannot serve. Hola parses stdout only and reports a ban; NordVPN cities use the API filter; uk maps to gb.
This commit is contained in:
imSp4rky
2026-09-25 18:13:31 -06:00
parent 40281660f1
commit 80c0dc4ebf
11 changed files with 278 additions and 108 deletions
+30
View File
@@ -0,0 +1,30 @@
"""Unit tests for the Basic proxy provider: a query it cannot serve returns None so a bare query moves on."""
from __future__ import annotations
import pytest
from unshackle.core.proxies import Basic
pytestmark = pytest.mark.unit
@pytest.fixture
def basic() -> Basic:
return Basic(us=["http://one.example:8080", "http://two.example:8080"], gb="http://gb.example:8080")
@pytest.mark.parametrize(
("query", "expected"), [("us1", "http://one.example:8080"), ("US2", "http://two.example:8080")]
)
def test_numbered_entry(basic: Basic, query: str, expected: str) -> None:
assert basic.get_proxy(query) == expected
def test_single_entry_region(basic: Basic) -> None:
assert basic.get_proxy("gb") == "http://gb.example:8080"
@pytest.mark.parametrize("query", ["us-bos", "yul", "us:seattle", "us150", "us0", "ca"])
def test_query_it_cannot_serve_returns_none(basic: Basic, query: str) -> None:
assert basic.get_proxy(query) is None