From eedec192ba0a21c09f1108b61cd590a0bb679820 Mon Sep 17 00:00:00 2001 From: Zach Moody Date: Mon, 16 Jan 2017 16:28:25 -0600 Subject: [PATCH] Added model tests for duplicate prefix and IPs. --- netbox/ipam/tests/__init__.py | 0 netbox/ipam/tests/test_models.py | 72 ++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 netbox/ipam/tests/__init__.py create mode 100644 netbox/ipam/tests/test_models.py diff --git a/netbox/ipam/tests/__init__.py b/netbox/ipam/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/netbox/ipam/tests/test_models.py b/netbox/ipam/tests/test_models.py new file mode 100644 index 000000000..49ca3b09b --- /dev/null +++ b/netbox/ipam/tests/test_models.py @@ -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)