mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	Added model tests for duplicate prefix and IPs.
This commit is contained in:
		
							
								
								
									
										0
									
								
								netbox/ipam/tests/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								netbox/ipam/tests/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										72
									
								
								netbox/ipam/tests/test_models.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								netbox/ipam/tests/test_models.py
									
									
									
									
									
										Normal 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)
 | 
			
		||||
		Reference in New Issue
	
	Block a user