mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Add tests for IPAM object children views
This commit is contained in:
@ -1,5 +1,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
|
from django.test import override_settings
|
||||||
|
from django.urls import reverse
|
||||||
from netaddr import IPNetwork
|
from netaddr import IPNetwork
|
||||||
|
|
||||||
from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site
|
from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site
|
||||||
@ -222,6 +224,21 @@ class AggregateTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
'description': 'New description',
|
'description': 'New description',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
||||||
|
def test_aggregate_prefixes(self):
|
||||||
|
rir = RIR.objects.first()
|
||||||
|
aggregate = Aggregate.objects.create(prefix=IPNetwork('192.168.0.0/16'), rir=rir)
|
||||||
|
prefixes = (
|
||||||
|
Prefix(prefix=IPNetwork('192.168.1.0/24')),
|
||||||
|
Prefix(prefix=IPNetwork('192.168.2.0/24')),
|
||||||
|
Prefix(prefix=IPNetwork('192.168.3.0/24')),
|
||||||
|
)
|
||||||
|
Prefix.objects.bulk_create(prefixes)
|
||||||
|
self.assertEqual(aggregate.get_child_prefixes().count(), 3)
|
||||||
|
|
||||||
|
url = reverse('ipam:aggregate_prefixes', kwargs={'pk': aggregate.pk})
|
||||||
|
self.assertHttpStatus(self.client.get(url), 200)
|
||||||
|
|
||||||
|
|
||||||
class RoleTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
|
class RoleTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
|
||||||
model = Role
|
model = Role
|
||||||
@ -319,6 +336,48 @@ class PrefixTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
'description': 'New description',
|
'description': 'New description',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
||||||
|
def test_prefix_prefixes(self):
|
||||||
|
prefixes = (
|
||||||
|
Prefix(prefix=IPNetwork('192.168.0.0/16')),
|
||||||
|
Prefix(prefix=IPNetwork('192.168.1.0/24')),
|
||||||
|
Prefix(prefix=IPNetwork('192.168.2.0/24')),
|
||||||
|
Prefix(prefix=IPNetwork('192.168.3.0/24')),
|
||||||
|
)
|
||||||
|
Prefix.objects.bulk_create(prefixes)
|
||||||
|
self.assertEqual(prefixes[0].get_child_prefixes().count(), 3)
|
||||||
|
|
||||||
|
url = reverse('ipam:prefix_prefixes', kwargs={'pk': prefixes[0].pk})
|
||||||
|
self.assertHttpStatus(self.client.get(url), 200)
|
||||||
|
|
||||||
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
||||||
|
def test_prefix_ipranges(self):
|
||||||
|
prefix = Prefix.objects.create(prefix=IPNetwork('192.168.0.0/16'))
|
||||||
|
ip_ranges = (
|
||||||
|
IPRange(start_address='192.168.0.1/24', end_address='192.168.0.100/24', size=99),
|
||||||
|
IPRange(start_address='192.168.1.1/24', end_address='192.168.1.100/24', size=99),
|
||||||
|
IPRange(start_address='192.168.2.1/24', end_address='192.168.2.100/24', size=99),
|
||||||
|
)
|
||||||
|
IPRange.objects.bulk_create(ip_ranges)
|
||||||
|
self.assertEqual(prefix.get_child_ranges().count(), 3)
|
||||||
|
|
||||||
|
url = reverse('ipam:prefix_ipranges', kwargs={'pk': prefix.pk})
|
||||||
|
self.assertHttpStatus(self.client.get(url), 200)
|
||||||
|
|
||||||
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
||||||
|
def test_prefix_ipaddresses(self):
|
||||||
|
prefix = Prefix.objects.create(prefix=IPNetwork('192.168.0.0/16'))
|
||||||
|
ip_addresses = (
|
||||||
|
IPAddress(address=IPNetwork('192.168.0.1/16')),
|
||||||
|
IPAddress(address=IPNetwork('192.168.0.2/16')),
|
||||||
|
IPAddress(address=IPNetwork('192.168.0.3/16')),
|
||||||
|
)
|
||||||
|
IPAddress.objects.bulk_create(ip_addresses)
|
||||||
|
self.assertEqual(prefix.get_child_ips().count(), 3)
|
||||||
|
|
||||||
|
url = reverse('ipam:prefix_ipaddresses', kwargs={'pk': prefix.pk})
|
||||||
|
self.assertHttpStatus(self.client.get(url), 200)
|
||||||
|
|
||||||
|
|
||||||
class IPRangeTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
class IPRangeTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
||||||
model = IPRange
|
model = IPRange
|
||||||
@ -377,6 +436,24 @@ class IPRangeTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
'description': 'New description',
|
'description': 'New description',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
||||||
|
def test_iprange_ipaddresses(self):
|
||||||
|
iprange = IPRange.objects.create(
|
||||||
|
start_address=IPNetwork('192.168.0.1/24'),
|
||||||
|
end_address=IPNetwork('192.168.0.100/24'),
|
||||||
|
size=99
|
||||||
|
)
|
||||||
|
ip_addresses = (
|
||||||
|
IPAddress(address=IPNetwork('192.168.0.1/24')),
|
||||||
|
IPAddress(address=IPNetwork('192.168.0.2/24')),
|
||||||
|
IPAddress(address=IPNetwork('192.168.0.3/24')),
|
||||||
|
)
|
||||||
|
IPAddress.objects.bulk_create(ip_addresses)
|
||||||
|
self.assertEqual(iprange.get_child_ips().count(), 3)
|
||||||
|
|
||||||
|
url = reverse('ipam:iprange_ipaddresses', kwargs={'pk': iprange.pk})
|
||||||
|
self.assertHttpStatus(self.client.get(url), 200)
|
||||||
|
|
||||||
|
|
||||||
class IPAddressTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
class IPAddressTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
||||||
model = IPAddress
|
model = IPAddress
|
||||||
|
Reference in New Issue
Block a user