mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-14 04:55:07 +00:00
fix(api): skip the local geoblock for a relayed tag not installed here
This commit is contained in:
@@ -63,6 +63,11 @@ def test_region_match_no_proxy(monkeypatch):
|
|||||||
assert handlers.resolve_handler_proxy({"client_region": "ca"}, "EXAMPLE", request("plainkey")) == (None, [])
|
assert handlers.resolve_handler_proxy({"client_region": "ca"}, "EXAMPLE", request("plainkey")) == (None, [])
|
||||||
|
|
||||||
|
|
||||||
|
def test_relayed_tag_not_installed_here_skips_the_local_geoblock(monkeypatch):
|
||||||
|
patch_server_region(monkeypatch, "CA")
|
||||||
|
assert handlers.resolve_handler_proxy({"client_region": "ca"}, "NOTHERE", request("plainkey")) == (None, [])
|
||||||
|
|
||||||
|
|
||||||
def test_region_unknown_no_error(monkeypatch):
|
def test_region_unknown_no_error(monkeypatch):
|
||||||
patch_server_region(monkeypatch, None)
|
patch_server_region(monkeypatch, None)
|
||||||
assert handlers.resolve_handler_proxy({"client_region": "ca"}, "EXAMPLE", request("plainkey")) == (None, [])
|
assert handlers.resolve_handler_proxy({"client_region": "ca"}, "EXAMPLE", request("plainkey")) == (None, [])
|
||||||
|
|||||||
@@ -4686,7 +4686,9 @@ def resolve_handler_proxy(
|
|||||||
log.debug(f"Server region lookup failed: {e!r}")
|
log.debug(f"Server region lookup failed: {e!r}")
|
||||||
server_region = None
|
server_region = None
|
||||||
|
|
||||||
geoblock = getattr(Services.load(normalized_service), "GEOBLOCK", ()) or ()
|
geoblock: Any = ()
|
||||||
|
with suppress(KeyError): # a relayed tag need not be installed on this server
|
||||||
|
geoblock = getattr(Services.load(normalized_service), "GEOBLOCK", ()) or ()
|
||||||
if client_region.lower() in {x.lower() for x in geoblock}:
|
if client_region.lower() in {x.lower() for x in geoblock}:
|
||||||
raise APIError(
|
raise APIError(
|
||||||
APIErrorCode.GEOFENCE,
|
APIErrorCode.GEOFENCE,
|
||||||
|
|||||||
Reference in New Issue
Block a user