1
0
mirror of https://github.com/quay/quay.git synced 2026-01-26 06:21:37 +03:00
Files
quay/util/ipresolver/test/test_ipresolver.py
Kenny Lee Sin Cheong 5f63b3a7bb chore: drop deprecated tables and remove unused code (PROJQUAY-522) (#2089)
* chore: drop deprecated tables and remove unused code

* isort imports

* migration: check for table existence before drop
2023-08-25 12:17:24 -04:00

109 lines
2.8 KiB
Python

from test.fixtures import *
import pytest
from mock import patch
from util.ipresolver import IPResolver, ResolvedLocation
@pytest.fixture()
def test_aws_ip():
return "10.0.0.1"
@pytest.fixture()
def aws_ip_range_data():
fake_range_doc = {
"syncToken": 123456789,
"prefixes": [
{
"ip_prefix": "10.0.0.0/8",
"region": "GLOBAL",
"service": "EC2",
},
{
"ip_prefix": "6.0.0.0/8",
"region": "GLOBAL",
"service": "EC2",
},
{
"ip_prefix": "5.0.0.0/8",
"region": "af-south-1",
"service": "AMAZON",
},
{
"ip_prefix": "4.0.0.0/8",
"region": "us-east-1",
"service": "EC2",
},
],
}
return fake_range_doc
@pytest.fixture()
def test_ip_range_cache(aws_ip_range_data):
sync_token = aws_ip_range_data["syncToken"]
all_amazon = IPResolver._parse_amazon_ranges(aws_ip_range_data)
fake_cache = {
"sync_token": sync_token,
"all_amazon": all_amazon,
}
return fake_cache
def test_resolved(aws_ip_range_data, test_ip_range_cache, test_aws_ip, app):
ipresolver = IPResolver(app)
ipresolver.amazon_ranges = test_ip_range_cache["all_amazon"]
ipresolver.sync_token = test_ip_range_cache["sync_token"]
assert ipresolver.resolve_ip(test_aws_ip) == ResolvedLocation(
provider="aws",
service=None,
sync_token=123456789,
country_iso_code=None,
aws_region="GLOBAL",
continent=None,
)
assert ipresolver.resolve_ip("10.0.0.2") == ResolvedLocation(
provider="aws",
service=None,
sync_token=123456789,
country_iso_code=None,
aws_region="GLOBAL",
continent=None,
)
assert ipresolver.resolve_ip("6.0.0.2") == ResolvedLocation(
provider="aws",
service=None,
sync_token=123456789,
country_iso_code="US",
aws_region="GLOBAL", # DoD assigned
continent="NA",
)
assert ipresolver.resolve_ip("4.0.0.2") == ResolvedLocation(
provider="aws",
service=None,
sync_token=123456789,
country_iso_code="US",
aws_region="us-east-1",
continent="NA",
)
assert ipresolver.resolve_ip("56.0.0.2") == ResolvedLocation(
provider="internet",
service="US",
sync_token=123456789,
country_iso_code="US", # USPS assigned
aws_region=None,
continent="NA",
)
assert ipresolver.resolve_ip("127.0.0.1") == ResolvedLocation(
provider="internet",
service=None,
sync_token=123456789,
country_iso_code=None,
aws_region=None,
continent=None,
)