|
@@ -8,65 +8,53 @@ from django.core.exceptions import ValidationError
|
|
|
|
|
|
class TestPrefix(TestCase):
|
|
|
|
|
|
- fixtures = [
|
|
|
- 'dcim',
|
|
|
- 'ipam'
|
|
|
- ]
|
|
|
-
|
|
|
- def test_create(self):
|
|
|
- prefix = Prefix.objects.create(
|
|
|
- prefix=netaddr.IPNetwork('10.1.1.0/24'),
|
|
|
- status=1
|
|
|
- )
|
|
|
- self.assertIsNone(prefix.clean())
|
|
|
-
|
|
|
- @override_settings(ENFORCE_GLOBAL_UNIQUE=True)
|
|
|
+ @override_settings(ENFORCE_GLOBAL_UNIQUE=False)
|
|
|
def test_duplicate_global(self):
|
|
|
- prefix = Prefix.objects.create(
|
|
|
- prefix=netaddr.IPNetwork('10.1.1.0/24'),
|
|
|
- status=1
|
|
|
- )
|
|
|
- self.assertRaises(ValidationError, prefix.clean)
|
|
|
+ Prefix.objects.create(prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ duplicate_prefix = Prefix(prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ self.assertIsNone(duplicate_prefix.clean())
|
|
|
|
|
|
@override_settings(ENFORCE_GLOBAL_UNIQUE=True)
|
|
|
+ def test_duplicate_global_unique(self):
|
|
|
+ Prefix.objects.create(prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ duplicate_prefix = Prefix(prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ self.assertRaises(ValidationError, duplicate_prefix.clean)
|
|
|
+
|
|
|
def test_duplicate_vrf(self):
|
|
|
- pfx_kwargs = {
|
|
|
- "prefix": netaddr.IPNetwork('10.1.1.0/24'),
|
|
|
- "status": 1,
|
|
|
- "vrf": VRF.objects.create(name='Test', rd='1:1'),
|
|
|
- }
|
|
|
- Prefix.objects.create(**pfx_kwargs)
|
|
|
- dup_prefix = Prefix.objects.create(**pfx_kwargs)
|
|
|
- self.assertRaises(ValidationError, dup_prefix.clean)
|
|
|
+ vrf = VRF.objects.create(name='Test', rd='1:1', enforce_unique=False)
|
|
|
+ Prefix.objects.create(vrf=vrf, prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ duplicate_prefix = Prefix(vrf=vrf, prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ self.assertIsNone(duplicate_prefix.clean())
|
|
|
|
|
|
+ def test_duplicate_vrf_unique(self):
|
|
|
+ vrf = VRF.objects.create(name='Test', rd='1:1', enforce_unique=True)
|
|
|
+ Prefix.objects.create(vrf=vrf, prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ duplicate_prefix = Prefix(vrf=vrf, prefix=netaddr.IPNetwork('192.0.2.0/24'))
|
|
|
+ self.assertRaises(ValidationError, duplicate_prefix.clean)
|
|
|
|
|
|
-class TestIPAddress(TestCase):
|
|
|
|
|
|
- fixtures = [
|
|
|
- 'dcim',
|
|
|
- 'ipam'
|
|
|
- ]
|
|
|
-
|
|
|
- def test_create(self):
|
|
|
- address = IPAddress.objects.create(
|
|
|
- address=netaddr.IPNetwork('10.0.254.1/24'),
|
|
|
- )
|
|
|
- self.assertIsNone(address.clean())
|
|
|
+class TestIPAddress(TestCase):
|
|
|
|
|
|
- @override_settings(ENFORCE_GLOBAL_UNIQUE=True)
|
|
|
+ @override_settings(ENFORCE_GLOBAL_UNIQUE=False)
|
|
|
def test_duplicate_global(self):
|
|
|
- address = IPAddress.objects.create(
|
|
|
- address=netaddr.IPNetwork('10.0.254.1/24'),
|
|
|
- )
|
|
|
- self.assertRaises(ValidationError, address.clean)
|
|
|
+ IPAddress.objects.create(address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ duplicate_ip = IPAddress(address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ self.assertIsNone(duplicate_ip.clean())
|
|
|
|
|
|
@override_settings(ENFORCE_GLOBAL_UNIQUE=True)
|
|
|
+ def test_duplicate_global_unique(self):
|
|
|
+ IPAddress.objects.create(address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ duplicate_ip = IPAddress(address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ self.assertRaises(ValidationError, duplicate_ip.clean)
|
|
|
+
|
|
|
def test_duplicate_vrf(self):
|
|
|
- pfx_kwargs = {
|
|
|
- "address": netaddr.IPNetwork('10.0.254.1/24'),
|
|
|
- "status": 1,
|
|
|
- "vrf": VRF.objects.create(name='Test', rd='1:1'),
|
|
|
- }
|
|
|
- IPAddress.objects.create(**pfx_kwargs)
|
|
|
- dup_address = IPAddress.objects.create(**pfx_kwargs)
|
|
|
- self.assertRaises(ValidationError, dup_address.clean)
|
|
|
+ vrf = VRF.objects.create(name='Test', rd='1:1', enforce_unique=False)
|
|
|
+ IPAddress.objects.create(vrf=vrf, address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ duplicate_ip = IPAddress(vrf=vrf, address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ self.assertIsNone(duplicate_ip.clean())
|
|
|
+
|
|
|
+ def test_duplicate_vrf_unique(self):
|
|
|
+ vrf = VRF.objects.create(name='Test', rd='1:1', enforce_unique=True)
|
|
|
+ IPAddress.objects.create(vrf=vrf, address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ duplicate_ip = IPAddress(vrf=vrf, address=netaddr.IPNetwork('192.0.2.1/24'))
|
|
|
+ self.assertRaises(ValidationError, duplicate_ip.clean)
|