|
|
@@ -36,6 +36,35 @@ class TestAggregate(TestCase):
|
|
|
self.assertEqual(aggregate.get_utilization(), 100)
|
|
|
|
|
|
|
|
|
+class TestIPRange(TestCase):
|
|
|
+
|
|
|
+ def test_overlapping_range(self):
|
|
|
+ iprange_192_168 = IPRange.objects.create(start_address=IPNetwork('192.168.0.1/22'), end_address=IPNetwork('192.168.0.49/22'))
|
|
|
+ iprange_192_168.clean()
|
|
|
+ iprange_3_1_99 = IPRange.objects.create(start_address=IPNetwork('1.2.3.1/24'), end_address=IPNetwork('1.2.3.99/24'))
|
|
|
+ iprange_3_1_99.clean()
|
|
|
+ iprange_3_100_199 = IPRange.objects.create(start_address=IPNetwork('1.2.3.100/24'), end_address=IPNetwork('1.2.3.199/24'))
|
|
|
+ iprange_3_100_199.clean()
|
|
|
+ iprange_3_200_255 = IPRange.objects.create(start_address=IPNetwork('1.2.3.200/24'), end_address=IPNetwork('1.2.3.255/24'))
|
|
|
+ iprange_3_200_255.clean()
|
|
|
+ iprange_4_1_99 = IPRange.objects.create(start_address=IPNetwork('1.2.4.1/24'), end_address=IPNetwork('1.2.4.99/24'))
|
|
|
+ iprange_4_1_99.clean()
|
|
|
+ iprange_4_200 = IPRange.objects.create(start_address=IPNetwork('1.2.4.200/24'), end_address=IPNetwork('1.2.4.255/24'))
|
|
|
+ iprange_4_200.clean()
|
|
|
+ # Overlapping range entirely within existing
|
|
|
+ with self.assertRaises(ValidationError):
|
|
|
+ iprange_3_123_124 = IPRange.objects.create(start_address=IPNetwork('1.2.3.123/26'), end_address=IPNetwork('1.2.3.124/26'))
|
|
|
+ iprange_3_123_124.clean()
|
|
|
+ # Overlapping range starting within existing
|
|
|
+ with self.assertRaises(ValidationError):
|
|
|
+ iprange_4_98_101 = IPRange.objects.create(start_address=IPNetwork('1.2.4.98/24'), end_address=IPNetwork('1.2.4.101/24'))
|
|
|
+ iprange_4_98_101.clean()
|
|
|
+ # Overlapping range ending within existing
|
|
|
+ with self.assertRaises(ValidationError):
|
|
|
+ iprange_4_198_201 = IPRange.objects.create(start_address=IPNetwork('1.2.4.198/24'), end_address=IPNetwork('1.2.4.201/24'))
|
|
|
+ iprange_4_198_201.clean()
|
|
|
+
|
|
|
+
|
|
|
class TestPrefix(TestCase):
|
|
|
|
|
|
def test_get_duplicates(self):
|