mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-12 20:15:10 +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, [])
|
||||
|
||||
|
||||
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):
|
||||
patch_server_region(monkeypatch, 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}")
|
||||
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}:
|
||||
raise APIError(
|
||||
APIErrorCode.GEOFENCE,
|
||||
|
||||
Reference in New Issue
Block a user