mirror of
https://github.com/quay/quay.git
synced 2026-01-26 06:21:37 +03:00
* chore: drop deprecated tables and remove unused code * isort imports * migration: check for table existence before drop
109 lines
2.8 KiB
Python
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,
|
|
)
|