|
@@ -0,0 +1,72 @@
|
|
|
+import netaddr
|
|
|
+
|
|
|
+from django.test import TestCase, override_settings
|
|
|
+
|
|
|
+from ipam.models import IPAddress, Prefix, VRF
|
|
|
+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)
|
|
|
+ def test_duplicate_global(self):
|
|
|
+ prefix = Prefix.objects.create(
|
|
|
+ prefix=netaddr.IPNetwork('10.1.1.0/24'),
|
|
|
+ status=1
|
|
|
+ )
|
|
|
+ self.assertRaises(ValidationError, prefix.clean)
|
|
|
+
|
|
|
+ @override_settings(ENFORCE_GLOBAL_UNIQUE=True)
|
|
|
+ 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)
|
|
|
+
|
|
|
+
|
|
|
+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())
|
|
|
+
|
|
|
+ @override_settings(ENFORCE_GLOBAL_UNIQUE=True)
|
|
|
+ def test_duplicate_global(self):
|
|
|
+ address = IPAddress.objects.create(
|
|
|
+ address=netaddr.IPNetwork('10.0.254.1/24'),
|
|
|
+ )
|
|
|
+ self.assertRaises(ValidationError, address.clean)
|
|
|
+
|
|
|
+ @override_settings(ENFORCE_GLOBAL_UNIQUE=True)
|
|
|
+ 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)
|