mirror of
https://github.com/peeringdb/peeringdb.git
synced 2024-05-11 05:55:09 +00:00
102 lines
2.3 KiB
Python
102 lines
2.3 KiB
Python
|
import ipaddress
|
||
|
import os
|
||
|
import pytest
|
||
|
import requests
|
||
|
|
||
|
from django.test import override_settings
|
||
|
from django.core.exceptions import ValidationError
|
||
|
|
||
|
from peeringdb_server.validators import (
|
||
|
validate_address_space, validate_info_prefixes4, validate_info_prefixes6)
|
||
|
|
||
|
pytestmark = pytest.mark.django_db
|
||
|
|
||
|
INVALID_ADDRESS_SPACES = [
|
||
|
'0.0.0.0/1',
|
||
|
'0.0.0.0/8',
|
||
|
'10.0.0.0/8',
|
||
|
'127.0.0.0/8',
|
||
|
'169.254.0.0/16',
|
||
|
#FIXME: this fails still
|
||
|
#'172.0.0.0/11',
|
||
|
'172.16.0.0/12',
|
||
|
'192.0.2.0/24',
|
||
|
'192.168.0.0/16',
|
||
|
'198.18.0.0/15',
|
||
|
'198.51.100.0/24',
|
||
|
'203.0.113.0/24',
|
||
|
#FIXME: this fails still
|
||
|
#'224.0.0.0/3',
|
||
|
'224.0.0.0/4',
|
||
|
'240.0.0.0/4',
|
||
|
'100.64.0.0/10',
|
||
|
'0000::/8',
|
||
|
'0064:ff9b::/96',
|
||
|
'0100::/8',
|
||
|
'0200::/7',
|
||
|
'0400::/6',
|
||
|
'0800::/5',
|
||
|
'1000::/4',
|
||
|
'2001::/33',
|
||
|
'2001:0:8000::/33',
|
||
|
'2001:0002::/48',
|
||
|
'2001:0003::/32',
|
||
|
'2001:10::/28',
|
||
|
'2001:20::/28',
|
||
|
'2001:db8::/32',
|
||
|
'2002::/16',
|
||
|
'3ffe::/16',
|
||
|
'4000::/2',
|
||
|
'4000::/3',
|
||
|
'5f00::/8',
|
||
|
'6000::/3',
|
||
|
'8000::/3',
|
||
|
'a000::/3',
|
||
|
'c000::/3',
|
||
|
'e000::/4',
|
||
|
'f000::/5',
|
||
|
'f800::/6',
|
||
|
'fc00::/7',
|
||
|
'fe80::/10',
|
||
|
'fec0::/10',
|
||
|
'ff00::/8'
|
||
|
]
|
||
|
|
||
|
|
||
|
@pytest.fixture(params=INVALID_ADDRESS_SPACES)
|
||
|
def prefix(request):
|
||
|
return request.param
|
||
|
|
||
|
|
||
|
#@pytest.mark.django_db
|
||
|
def test_validate_address_space(prefix):
|
||
|
"""
|
||
|
Tests peeringdb_server.validators.validate_address_space
|
||
|
"""
|
||
|
with pytest.raises(ValidationError) as exc:
|
||
|
validate_address_space(ipaddress.ip_network(unicode(prefix)))
|
||
|
|
||
|
|
||
|
@override_settings(DATA_QUALITY_MAX_PREFIX_V4_LIMIT=500000)
|
||
|
def test_validate_info_prefixes4():
|
||
|
"""
|
||
|
Tests peeringdb_server.validators.validate_info_prefixes4
|
||
|
"""
|
||
|
with pytest.raises(ValidationError):
|
||
|
validate_info_prefixes4(500001)
|
||
|
with pytest.raises(ValidationError):
|
||
|
validate_info_prefixes4(-1)
|
||
|
validate_info_prefixes4(500000)
|
||
|
|
||
|
|
||
|
@override_settings(DATA_QUALITY_MAX_PREFIX_V6_LIMIT=500000)
|
||
|
def test_validate_info_prefixes6():
|
||
|
"""
|
||
|
Tests peeringdb_server.validators.validate_info_prefixes6
|
||
|
"""
|
||
|
with pytest.raises(ValidationError):
|
||
|
validate_info_prefixes6(500001)
|
||
|
with pytest.raises(ValidationError):
|
||
|
validate_info_prefixes6(-1)
|
||
|
validate_info_prefixes6(500000)
|