mirror of
https://github.com/dcarrillo/digaws.git
synced 2025-07-03 03:09:26 +00:00
chore: Use black formatter (#9)
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import ipaddress
|
||||
|
||||
AWS_IP_RANGES = '''
|
||||
AWS_IP_RANGES = """
|
||||
{
|
||||
"syncToken": "1608245058",
|
||||
"createDate": "2020-12-17-22-44-18",
|
||||
@ -45,57 +45,57 @@ AWS_IP_RANGES = '''
|
||||
}
|
||||
]
|
||||
}
|
||||
'''
|
||||
"""
|
||||
AWS_IPV4_RANGES_OBJ = [
|
||||
{
|
||||
'ip_prefix': ipaddress.IPv4Network('52.93.178.234/32'),
|
||||
'region': 'us-west-1',
|
||||
'service': 'AMAZON',
|
||||
'network_border_group': 'us-west-1'
|
||||
},
|
||||
{
|
||||
'ip_prefix': ipaddress.IPv4Network('52.94.76.0/22'),
|
||||
'region': 'us-west-2',
|
||||
'service': 'AMAZON',
|
||||
'network_border_group': 'us-west-2'
|
||||
}
|
||||
{
|
||||
"ip_prefix": ipaddress.IPv4Network("52.93.178.234/32"),
|
||||
"region": "us-west-1",
|
||||
"service": "AMAZON",
|
||||
"network_border_group": "us-west-1",
|
||||
},
|
||||
{
|
||||
"ip_prefix": ipaddress.IPv4Network("52.94.76.0/22"),
|
||||
"region": "us-west-2",
|
||||
"service": "AMAZON",
|
||||
"network_border_group": "us-west-2",
|
||||
},
|
||||
]
|
||||
AWS_IPV6_RANGES_OBJ = [
|
||||
{
|
||||
'ipv6_prefix': ipaddress.IPv6Network('2600:1f00:c000::/40'),
|
||||
'region': 'us-west-1',
|
||||
'service': 'AMAZON',
|
||||
'network_border_group': 'us-west-1'
|
||||
},
|
||||
{
|
||||
'ipv6_prefix': ipaddress.IPv6Network('2600:1f01:4874::/47'),
|
||||
'region': 'us-west-2',
|
||||
'service': 'AMAZON',
|
||||
'network_border_group': 'us-west-2'
|
||||
},
|
||||
{
|
||||
'ipv6_prefix': ipaddress.IPv6Network('2600:1f14:fff:f800::/53'),
|
||||
'region': 'us-west-2',
|
||||
'service': 'ROUTE53_HEALTHCHECKS',
|
||||
'network_border_group': 'us-west-2'
|
||||
},
|
||||
{
|
||||
'ipv6_prefix': ipaddress.IPv6Network('2600:1f14::/35'),
|
||||
'region': 'us-west-2',
|
||||
'service': 'EC2',
|
||||
'network_border_group': 'us-west-2'
|
||||
}
|
||||
{
|
||||
"ipv6_prefix": ipaddress.IPv6Network("2600:1f00:c000::/40"),
|
||||
"region": "us-west-1",
|
||||
"service": "AMAZON",
|
||||
"network_border_group": "us-west-1",
|
||||
},
|
||||
{
|
||||
"ipv6_prefix": ipaddress.IPv6Network("2600:1f01:4874::/47"),
|
||||
"region": "us-west-2",
|
||||
"service": "AMAZON",
|
||||
"network_border_group": "us-west-2",
|
||||
},
|
||||
{
|
||||
"ipv6_prefix": ipaddress.IPv6Network("2600:1f14:fff:f800::/53"),
|
||||
"region": "us-west-2",
|
||||
"service": "ROUTE53_HEALTHCHECKS",
|
||||
"network_border_group": "us-west-2",
|
||||
},
|
||||
{
|
||||
"ipv6_prefix": ipaddress.IPv6Network("2600:1f14::/35"),
|
||||
"region": "us-west-2",
|
||||
"service": "EC2",
|
||||
"network_border_group": "us-west-2",
|
||||
},
|
||||
]
|
||||
LAST_MODIFIED_TIME = 'Thu, 17 Dec 2020 23:22:33 GMT'
|
||||
LAST_MODIFIED_TIME = "Thu, 17 Dec 2020 23:22:33 GMT"
|
||||
|
||||
RESPONSE_PLAIN_PRINT = '''Prefix: 52.94.76.0/22
|
||||
RESPONSE_PLAIN_PRINT = """Prefix: 52.94.76.0/22
|
||||
Region: us-west-2
|
||||
Service: AMAZON
|
||||
Network border group: us-west-2
|
||||
|
||||
'''
|
||||
"""
|
||||
|
||||
RESPONSE_JSON_PRINT = '''[
|
||||
RESPONSE_JSON_PRINT = """[
|
||||
{
|
||||
"ipv6_prefix": "2600:1f14:fff:f800::/53",
|
||||
"region": "us-west-2",
|
||||
@ -109,9 +109,9 @@ RESPONSE_JSON_PRINT = '''[
|
||||
"network_border_group": "us-west-2"
|
||||
}
|
||||
]
|
||||
'''
|
||||
"""
|
||||
|
||||
RESPONSE_JSON_FIELDS_PRINT = '''[
|
||||
RESPONSE_JSON_FIELDS_PRINT = """[
|
||||
{
|
||||
"service": "ROUTE53_HEALTHCHECKS",
|
||||
"network_border_group": "us-west-2"
|
||||
@ -121,9 +121,9 @@ RESPONSE_JSON_FIELDS_PRINT = '''[
|
||||
"network_border_group": "us-west-2"
|
||||
}
|
||||
]
|
||||
'''
|
||||
"""
|
||||
|
||||
RESPONSE_JSON_JOINED_PRINT = '''[
|
||||
RESPONSE_JSON_JOINED_PRINT = """[
|
||||
{
|
||||
"ip_prefix": "52.94.76.0/22",
|
||||
"region": "us-west-2",
|
||||
@ -143,4 +143,4 @@ RESPONSE_JSON_JOINED_PRINT = '''[
|
||||
"network_border_group": "us-west-2"
|
||||
}
|
||||
]
|
||||
'''
|
||||
"""
|
||||
|
@ -1,24 +1,22 @@
|
||||
import json
|
||||
import sys
|
||||
|
||||
import digaws.digaws as digaws
|
||||
from digaws import __description__, __version__
|
||||
|
||||
import pytest
|
||||
|
||||
import digaws.digaws as digaws
|
||||
import tests
|
||||
from digaws import __description__, __version__
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def test_dig():
|
||||
return digaws.DigAWS(ip_ranges=json.loads(
|
||||
tests.AWS_IP_RANGES),
|
||||
output_fields=digaws.OUTPUT_FIELDS
|
||||
return digaws.DigAWS(
|
||||
ip_ranges=json.loads(tests.AWS_IP_RANGES), output_fields=digaws.OUTPUT_FIELDS
|
||||
)
|
||||
|
||||
|
||||
def test_cli(capsys):
|
||||
sys.argv = ['digaws', '-h']
|
||||
sys.argv = ["digaws", "-h"]
|
||||
try:
|
||||
digaws.main()
|
||||
except SystemExit as e:
|
||||
@ -28,19 +26,24 @@ def test_cli(capsys):
|
||||
|
||||
|
||||
def test_cli_version(capsys, mocker):
|
||||
sys.argv = ['digaws', '--version']
|
||||
sys.argv = ["digaws", "--version"]
|
||||
try:
|
||||
digaws.main()
|
||||
except SystemExit as e:
|
||||
out, _ = capsys.readouterr()
|
||||
assert out == f'digaws {__version__}\n'
|
||||
assert out == f"digaws {__version__}\n"
|
||||
assert e.code == 0
|
||||
|
||||
|
||||
def test_cli_invocation(capsys, mocker):
|
||||
sys.argv = ['digaws', '52.94.76.0/22', '2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8',
|
||||
'--output', 'json']
|
||||
mocker.patch('digaws.digaws.get_aws_ip_ranges', return_value=json.loads(tests.AWS_IP_RANGES))
|
||||
sys.argv = [
|
||||
"digaws",
|
||||
"52.94.76.0/22",
|
||||
"2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8",
|
||||
"--output",
|
||||
"json",
|
||||
]
|
||||
mocker.patch("digaws.digaws.get_aws_ip_ranges", return_value=json.loads(tests.AWS_IP_RANGES))
|
||||
digaws.main()
|
||||
out, _ = capsys.readouterr()
|
||||
|
||||
@ -48,18 +51,30 @@ def test_cli_invocation(capsys, mocker):
|
||||
|
||||
|
||||
def test_cli_output_plain_fields_invocation(capsys, mocker):
|
||||
sys.argv = ['digaws', '52.94.76.0/22', '--output=plain', '--output-fields', 'region']
|
||||
mocker.patch('digaws.digaws.get_aws_ip_ranges', return_value=json.loads(tests.AWS_IP_RANGES))
|
||||
sys.argv = [
|
||||
"digaws",
|
||||
"52.94.76.0/22",
|
||||
"--output=plain",
|
||||
"--output-fields",
|
||||
"region",
|
||||
]
|
||||
mocker.patch("digaws.digaws.get_aws_ip_ranges", return_value=json.loads(tests.AWS_IP_RANGES))
|
||||
digaws.main()
|
||||
out, _ = capsys.readouterr()
|
||||
|
||||
assert out == 'Region: us-west-2\n\n'
|
||||
assert out == "Region: us-west-2\n\n"
|
||||
|
||||
|
||||
def test_cli_output_json_fields_invocation(capsys, mocker):
|
||||
sys.argv = ['digaws', '2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8', '--output=json',
|
||||
'--output-fields', 'service', 'network_border_group']
|
||||
mocker.patch('digaws.digaws.get_aws_ip_ranges', return_value=json.loads(tests.AWS_IP_RANGES))
|
||||
sys.argv = [
|
||||
"digaws",
|
||||
"2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8",
|
||||
"--output=json",
|
||||
"--output-fields",
|
||||
"service",
|
||||
"network_border_group",
|
||||
]
|
||||
mocker.patch("digaws.digaws.get_aws_ip_ranges", return_value=json.loads(tests.AWS_IP_RANGES))
|
||||
digaws.main()
|
||||
out, _ = capsys.readouterr()
|
||||
|
||||
@ -72,28 +87,28 @@ def test_dig_aws_construct(test_dig):
|
||||
|
||||
|
||||
def test_lookup(test_dig):
|
||||
assert str(test_dig._lookup_data('52.94.76.1')[0]['ip_prefix']) == '52.94.76.0/22'
|
||||
assert str(test_dig._lookup_data('52.94.76.0/24')[0]['ip_prefix']) == '52.94.76.0/22'
|
||||
assert str(test_dig._lookup_data("52.94.76.1")[0]["ip_prefix"]) == "52.94.76.0/22"
|
||||
assert str(test_dig._lookup_data("52.94.76.0/24")[0]["ip_prefix"]) == "52.94.76.0/22"
|
||||
|
||||
input = '2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8'
|
||||
assert str(test_dig._lookup_data(input)[0]['ipv6_prefix']) == '2600:1f14:fff:f800::/53'
|
||||
assert str(test_dig._lookup_data(input)[1]['ipv6_prefix']) == '2600:1f14::/35'
|
||||
assert str(test_dig._lookup_data('2600:1f14::/36')[0]['ipv6_prefix']) == '2600:1f14::/35'
|
||||
input = "2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8"
|
||||
assert str(test_dig._lookup_data(input)[0]["ipv6_prefix"]) == "2600:1f14:fff:f800::/53"
|
||||
assert str(test_dig._lookup_data(input)[1]["ipv6_prefix"]) == "2600:1f14::/35"
|
||||
assert str(test_dig._lookup_data("2600:1f14::/36")[0]["ipv6_prefix"]) == "2600:1f14::/35"
|
||||
|
||||
with pytest.raises(ValueError) as e:
|
||||
test_dig.lookup('what are you talking about')
|
||||
assert e.startswith('Wrong IP or CIDR format')
|
||||
test_dig.lookup("what are you talking about")
|
||||
assert e.startswith("Wrong IP or CIDR format")
|
||||
|
||||
|
||||
def test_response_plain_print(test_dig, capsys):
|
||||
test_dig.lookup('52.94.76.0/22').plain_print()
|
||||
test_dig.lookup("52.94.76.0/22").plain_print()
|
||||
out, _ = capsys.readouterr()
|
||||
|
||||
assert out == tests.RESPONSE_PLAIN_PRINT
|
||||
|
||||
|
||||
def test_response_json_print(test_dig, capsys):
|
||||
test_dig.lookup('2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8').json_print()
|
||||
test_dig.lookup("2600:1f14:fff:f810:a1c1:f507:a2d1:2dd8").json_print()
|
||||
out, _ = capsys.readouterr()
|
||||
|
||||
assert out == tests.RESPONSE_JSON_PRINT
|
||||
|
@ -1,12 +1,10 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
import digaws.digaws as digaws
|
||||
|
||||
import pytest
|
||||
|
||||
import requests
|
||||
|
||||
import digaws.digaws as digaws
|
||||
import tests
|
||||
|
||||
|
||||
@ -28,61 +26,61 @@ def create_cache_dir(fs):
|
||||
digaws.CACHE_DIR.mkdir(parents=True)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('fs', [[None, [digaws]]], indirect=True)
|
||||
@pytest.mark.parametrize("fs", [[None, [digaws]]], indirect=True)
|
||||
def test_get_aws_ip_ranges_cached_valid_file(mocker, fs, create_cache_dir) -> None:
|
||||
with open(digaws.CACHE_FILE, 'w') as out:
|
||||
with open(digaws.CACHE_FILE, "w") as out:
|
||||
out.write(tests.AWS_IP_RANGES)
|
||||
|
||||
response = requests.Response
|
||||
response.status_code = 304
|
||||
mocker.patch('requests.get', return_value=response)
|
||||
mocker.patch("requests.get", return_value=response)
|
||||
|
||||
result = digaws.get_aws_ip_ranges()
|
||||
|
||||
assert result['syncToken'] == '1608245058'
|
||||
assert result["syncToken"] == "1608245058"
|
||||
|
||||
|
||||
@pytest.mark.parametrize('fs', [[None, [digaws]]], indirect=True)
|
||||
@pytest.mark.parametrize("fs", [[None, [digaws]]], indirect=True)
|
||||
def test_get_aws_ip_ranges_cached_invalid_file(mocker, fs, create_cache_dir) -> None:
|
||||
with open(digaws.CACHE_FILE, 'w'):
|
||||
with open(digaws.CACHE_FILE, "w"):
|
||||
pass
|
||||
|
||||
response = requests.Response
|
||||
response.status_code = 304
|
||||
mocker.patch('requests.get', return_value=response)
|
||||
mocker.patch("requests.get", return_value=response)
|
||||
|
||||
with pytest.raises(digaws.CachedFileException):
|
||||
digaws.get_aws_ip_ranges()
|
||||
|
||||
|
||||
@pytest.mark.parametrize('fs', [[None, [digaws]]], indirect=True)
|
||||
@pytest.mark.parametrize("fs", [[None, [digaws]]], indirect=True)
|
||||
def test_get_aws_ip_ranges_cached_deprecated_file(monkeypatch, fs, create_cache_dir) -> None:
|
||||
with open(digaws.CACHE_FILE, 'w'):
|
||||
with open(digaws.CACHE_FILE, "w"):
|
||||
pass
|
||||
digaws.CACHE_FILE.touch()
|
||||
os.utime(digaws.CACHE_FILE, times=(0, 0))
|
||||
|
||||
monkeypatch.setattr(requests, 'get', mock_get)
|
||||
monkeypatch.setattr(requests, "get", mock_get)
|
||||
result = digaws.get_aws_ip_ranges()
|
||||
|
||||
assert result['syncToken'] == '1608245058'
|
||||
assert result["syncToken"] == "1608245058"
|
||||
|
||||
|
||||
@pytest.mark.parametrize('fs', [[None, [digaws]]], indirect=True)
|
||||
@pytest.mark.parametrize("fs", [[None, [digaws]]], indirect=True)
|
||||
def test_get_aws_ip_ranges_no_file(monkeypatch, fs, create_cache_dir) -> None:
|
||||
monkeypatch.setattr(requests, 'get', mock_get)
|
||||
monkeypatch.setattr(requests, "get", mock_get)
|
||||
result = digaws.get_aws_ip_ranges()
|
||||
|
||||
assert result['syncToken'] == '1608245058'
|
||||
assert result["syncToken"] == "1608245058"
|
||||
|
||||
|
||||
@pytest.mark.parametrize('fs', [[None, [digaws]]], indirect=True)
|
||||
@pytest.mark.parametrize("fs", [[None, [digaws]]], indirect=True)
|
||||
def test_get_aws_ip_ranges_invalid_status(mocker, fs, create_cache_dir) -> None:
|
||||
response = requests.Response
|
||||
response.status_code = 301
|
||||
mocker.patch('requests.get', return_value=response)
|
||||
mocker.patch("requests.get", return_value=response)
|
||||
|
||||
with pytest.raises(digaws.UnexpectedRequestException) as e:
|
||||
digaws.get_aws_ip_ranges()
|
||||
|
||||
assert e.match('^Unexpected response from')
|
||||
assert e.match("^Unexpected response from")
|
||||
|
Reference in New Issue
Block a user