|
@@ -1,7 +1,7 @@
|
|
|
from django.test import TestCase
|
|
from django.test import TestCase
|
|
|
|
|
|
|
|
from dcim.choices import InterfaceTypeChoices, LinkStatusChoices
|
|
from dcim.choices import InterfaceTypeChoices, LinkStatusChoices
|
|
|
-from dcim.models import Interface
|
|
|
|
|
|
|
+from dcim.models import Interface, Location, Region, Site, SiteGroup
|
|
|
from ipam.models import VLAN
|
|
from ipam.models import VLAN
|
|
|
from netbox.choices import DistanceUnitChoices
|
|
from netbox.choices import DistanceUnitChoices
|
|
|
from tenancy.models import Tenant
|
|
from tenancy.models import Tenant
|
|
@@ -110,6 +110,36 @@ class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
)
|
|
)
|
|
|
VLAN.objects.bulk_create(vlans)
|
|
VLAN.objects.bulk_create(vlans)
|
|
|
|
|
|
|
|
|
|
+ regions = (
|
|
|
|
|
+ Region(name='Test Region 1', slug='test-region-1'),
|
|
|
|
|
+ Region(name='Test Region 2', slug='test-region-2'),
|
|
|
|
|
+ Region(name='Test Region 3', slug='test-region-3'),
|
|
|
|
|
+ )
|
|
|
|
|
+ for r in regions:
|
|
|
|
|
+ r.save()
|
|
|
|
|
+
|
|
|
|
|
+ site_groups = (
|
|
|
|
|
+ SiteGroup(name='Site Group 1', slug='site-group-1'),
|
|
|
|
|
+ SiteGroup(name='Site Group 2', slug='site-group-2'),
|
|
|
|
|
+ SiteGroup(name='Site Group 3', slug='site-group-3'),
|
|
|
|
|
+ )
|
|
|
|
|
+ for site_group in site_groups:
|
|
|
|
|
+ site_group.save()
|
|
|
|
|
+
|
|
|
|
|
+ sites = (
|
|
|
|
|
+ Site(name='Test Site 1', slug='test-site-1', region=regions[0], group=site_groups[0]),
|
|
|
|
|
+ Site(name='Test Site 2', slug='test-site-2', region=regions[1], group=site_groups[1]),
|
|
|
|
|
+ Site(name='Test Site 3', slug='test-site-3', region=regions[2], group=site_groups[2]),
|
|
|
|
|
+ )
|
|
|
|
|
+ Site.objects.bulk_create(sites)
|
|
|
|
|
+
|
|
|
|
|
+ locations = (
|
|
|
|
|
+ Location(name='Location 1', slug='location-1', site=sites[0]),
|
|
|
|
|
+ Location(name='Location 2', slug='location-2', site=sites[2]),
|
|
|
|
|
+ )
|
|
|
|
|
+ for location in locations:
|
|
|
|
|
+ location.save()
|
|
|
|
|
+
|
|
|
tenants = (
|
|
tenants = (
|
|
|
Tenant(name='Tenant 1', slug='tenant-1'),
|
|
Tenant(name='Tenant 1', slug='tenant-1'),
|
|
|
Tenant(name='Tenant 2', slug='tenant-2'),
|
|
Tenant(name='Tenant 2', slug='tenant-2'),
|
|
@@ -127,7 +157,8 @@ class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
auth_type=WirelessAuthTypeChoices.TYPE_OPEN,
|
|
auth_type=WirelessAuthTypeChoices.TYPE_OPEN,
|
|
|
auth_cipher=WirelessAuthCipherChoices.CIPHER_AUTO,
|
|
auth_cipher=WirelessAuthCipherChoices.CIPHER_AUTO,
|
|
|
auth_psk='PSK1',
|
|
auth_psk='PSK1',
|
|
|
- description='foobar1'
|
|
|
|
|
|
|
+ description='foobar1',
|
|
|
|
|
+ scope=sites[0]
|
|
|
),
|
|
),
|
|
|
WirelessLAN(
|
|
WirelessLAN(
|
|
|
ssid='WLAN2',
|
|
ssid='WLAN2',
|
|
@@ -138,7 +169,8 @@ class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
auth_type=WirelessAuthTypeChoices.TYPE_WEP,
|
|
auth_type=WirelessAuthTypeChoices.TYPE_WEP,
|
|
|
auth_cipher=WirelessAuthCipherChoices.CIPHER_TKIP,
|
|
auth_cipher=WirelessAuthCipherChoices.CIPHER_TKIP,
|
|
|
auth_psk='PSK2',
|
|
auth_psk='PSK2',
|
|
|
- description='foobar2'
|
|
|
|
|
|
|
+ description='foobar2',
|
|
|
|
|
+ scope=locations[0]
|
|
|
),
|
|
),
|
|
|
WirelessLAN(
|
|
WirelessLAN(
|
|
|
ssid='WLAN3',
|
|
ssid='WLAN3',
|
|
@@ -149,12 +181,14 @@ class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
auth_type=WirelessAuthTypeChoices.TYPE_WPA_PERSONAL,
|
|
auth_type=WirelessAuthTypeChoices.TYPE_WPA_PERSONAL,
|
|
|
auth_cipher=WirelessAuthCipherChoices.CIPHER_AES,
|
|
auth_cipher=WirelessAuthCipherChoices.CIPHER_AES,
|
|
|
auth_psk='PSK3',
|
|
auth_psk='PSK3',
|
|
|
- description='foobar3'
|
|
|
|
|
|
|
+ description='foobar3',
|
|
|
|
|
+ scope=locations[1]
|
|
|
),
|
|
),
|
|
|
)
|
|
)
|
|
|
- WirelessLAN.objects.bulk_create(wireless_lans)
|
|
|
|
|
|
|
+ for wireless_lan in wireless_lans:
|
|
|
|
|
+ wireless_lan.save()
|
|
|
|
|
|
|
|
- device = create_test_device('Device 1')
|
|
|
|
|
|
|
+ device = create_test_device('Device 1', site=sites[0])
|
|
|
interfaces = (
|
|
interfaces = (
|
|
|
Interface(device=device, name='Interface 1', type=InterfaceTypeChoices.TYPE_80211N),
|
|
Interface(device=device, name='Interface 1', type=InterfaceTypeChoices.TYPE_80211N),
|
|
|
Interface(device=device, name='Interface 2', type=InterfaceTypeChoices.TYPE_80211N),
|
|
Interface(device=device, name='Interface 2', type=InterfaceTypeChoices.TYPE_80211N),
|
|
@@ -217,6 +251,38 @@ class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
params = {'interface_id': [interfaces[0].pk, interfaces[1].pk]}
|
|
params = {'interface_id': [interfaces[0].pk, interfaces[1].pk]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
|
|
|
|
|
+ def test_region(self):
|
|
|
|
|
+ regions = Region.objects.all()[:2]
|
|
|
|
|
+ params = {'region_id': [regions[0].pk, regions[1].pk]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
+ params = {'region': [regions[0].slug, regions[1].slug]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
+
|
|
|
|
|
+ def test_site_group(self):
|
|
|
|
|
+ site_groups = SiteGroup.objects.all()[:2]
|
|
|
|
|
+ params = {'site_group_id': [site_groups[0].pk, site_groups[1].pk]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
+ params = {'site_group': [site_groups[0].slug, site_groups[1].slug]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
+
|
|
|
|
|
+ def test_site(self):
|
|
|
|
|
+ sites = Site.objects.all()[:2]
|
|
|
|
|
+ params = {'site_id': [sites[0].pk, sites[1].pk]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
+ params = {'site': [sites[0].slug, sites[1].slug]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
+
|
|
|
|
|
+ def test_location(self):
|
|
|
|
|
+ locations = Location.objects.all()[:1]
|
|
|
|
|
+ params = {'location_id': [locations[0].pk,]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
|
|
|
|
+ params = {'location': [locations[0].slug,]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
|
|
|
|
+
|
|
|
|
|
+ def test_scope_type(self):
|
|
|
|
|
+ params = {'scope_type': 'dcim.location'}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class WirelessLinkTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
class WirelessLinkTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
queryset = WirelessLink.objects.all()
|
|
queryset = WirelessLink.objects.all()
|