Added model tests for duplicate prefix and IPs.

This commit is contained in:
Zach Moody 2017-01-16 16:28:25 -06:00
parent cfaf8b9157
commit eedec192ba
2 changed files with 72 additions and 0 deletions

View File

View File

@ -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)