|
@@ -64,21 +64,32 @@ class RegionTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
@classmethod
|
|
@classmethod
|
|
|
def setUpTestData(cls):
|
|
def setUpTestData(cls):
|
|
|
|
|
|
|
|
- regions = (
|
|
|
|
|
|
|
+ parent_regions = (
|
|
|
Region(name='Region 1', slug='region-1', description='foobar1'),
|
|
Region(name='Region 1', slug='region-1', description='foobar1'),
|
|
|
Region(name='Region 2', slug='region-2', description='foobar2'),
|
|
Region(name='Region 2', slug='region-2', description='foobar2'),
|
|
|
Region(name='Region 3', slug='region-3', description='foobar3'),
|
|
Region(name='Region 3', slug='region-3', description='foobar3'),
|
|
|
)
|
|
)
|
|
|
|
|
+ for region in parent_regions:
|
|
|
|
|
+ region.save()
|
|
|
|
|
+
|
|
|
|
|
+ regions = (
|
|
|
|
|
+ Region(name='Region 1A', slug='region-1a', parent=parent_regions[0]),
|
|
|
|
|
+ Region(name='Region 1B', slug='region-1b', parent=parent_regions[0]),
|
|
|
|
|
+ Region(name='Region 2A', slug='region-2a', parent=parent_regions[1]),
|
|
|
|
|
+ Region(name='Region 2B', slug='region-2b', parent=parent_regions[1]),
|
|
|
|
|
+ Region(name='Region 3A', slug='region-3a', parent=parent_regions[2]),
|
|
|
|
|
+ Region(name='Region 3B', slug='region-3b', parent=parent_regions[2]),
|
|
|
|
|
+ )
|
|
|
for region in regions:
|
|
for region in regions:
|
|
|
region.save()
|
|
region.save()
|
|
|
|
|
|
|
|
child_regions = (
|
|
child_regions = (
|
|
|
- Region(name='Region 1A', slug='region-1a', parent=regions[0]),
|
|
|
|
|
- Region(name='Region 1B', slug='region-1b', parent=regions[0]),
|
|
|
|
|
- Region(name='Region 2A', slug='region-2a', parent=regions[1]),
|
|
|
|
|
- Region(name='Region 2B', slug='region-2b', parent=regions[1]),
|
|
|
|
|
- Region(name='Region 3A', slug='region-3a', parent=regions[2]),
|
|
|
|
|
- Region(name='Region 3B', slug='region-3b', parent=regions[2]),
|
|
|
|
|
|
|
+ Region(name='Region 1A1', slug='region-1a1', parent=regions[0]),
|
|
|
|
|
+ Region(name='Region 1B1', slug='region-1b1', parent=regions[1]),
|
|
|
|
|
+ Region(name='Region 2A1', slug='region-2a1', parent=regions[2]),
|
|
|
|
|
+ Region(name='Region 2B1', slug='region-2b1', parent=regions[3]),
|
|
|
|
|
+ Region(name='Region 3A1', slug='region-3a1', parent=regions[4]),
|
|
|
|
|
+ Region(name='Region 3B1', slug='region-3b1', parent=regions[5]),
|
|
|
)
|
|
)
|
|
|
for region in child_regions:
|
|
for region in child_regions:
|
|
|
region.save()
|
|
region.save()
|
|
@@ -100,12 +111,19 @@ class RegionTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
|
|
|
def test_parent(self):
|
|
def test_parent(self):
|
|
|
- parent_regions = Region.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
- params = {'parent_id': [parent_regions[0].pk, parent_regions[1].pk]}
|
|
|
|
|
|
|
+ regions = Region.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
+ params = {'parent_id': [regions[0].pk, regions[1].pk]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
- params = {'parent': [parent_regions[0].slug, parent_regions[1].slug]}
|
|
|
|
|
|
|
+ params = {'parent': [regions[0].slug, regions[1].slug]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
|
|
|
+ def test_ancestor(self):
|
|
|
|
|
+ regions = Region.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
+ params = {'ancestor_id': [regions[0].pk, regions[1].pk]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
|
|
|
|
|
+ params = {'ancestor': [regions[0].slug, regions[1].slug]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
queryset = SiteGroup.objects.all()
|
|
queryset = SiteGroup.objects.all()
|
|
@@ -114,24 +132,35 @@ class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
@classmethod
|
|
@classmethod
|
|
|
def setUpTestData(cls):
|
|
def setUpTestData(cls):
|
|
|
|
|
|
|
|
- sitegroups = (
|
|
|
|
|
|
|
+ parent_groups = (
|
|
|
SiteGroup(name='Site Group 1', slug='site-group-1', description='foobar1'),
|
|
SiteGroup(name='Site Group 1', slug='site-group-1', description='foobar1'),
|
|
|
SiteGroup(name='Site Group 2', slug='site-group-2', description='foobar2'),
|
|
SiteGroup(name='Site Group 2', slug='site-group-2', description='foobar2'),
|
|
|
SiteGroup(name='Site Group 3', slug='site-group-3', description='foobar3'),
|
|
SiteGroup(name='Site Group 3', slug='site-group-3', description='foobar3'),
|
|
|
)
|
|
)
|
|
|
- for sitegroup in sitegroups:
|
|
|
|
|
- sitegroup.save()
|
|
|
|
|
|
|
+ for site_group in parent_groups:
|
|
|
|
|
+ site_group.save()
|
|
|
|
|
|
|
|
- child_sitegroups = (
|
|
|
|
|
- SiteGroup(name='Site Group 1A', slug='site-group-1a', parent=sitegroups[0]),
|
|
|
|
|
- SiteGroup(name='Site Group 1B', slug='site-group-1b', parent=sitegroups[0]),
|
|
|
|
|
- SiteGroup(name='Site Group 2A', slug='site-group-2a', parent=sitegroups[1]),
|
|
|
|
|
- SiteGroup(name='Site Group 2B', slug='site-group-2b', parent=sitegroups[1]),
|
|
|
|
|
- SiteGroup(name='Site Group 3A', slug='site-group-3a', parent=sitegroups[2]),
|
|
|
|
|
- SiteGroup(name='Site Group 3B', slug='site-group-3b', parent=sitegroups[2]),
|
|
|
|
|
- )
|
|
|
|
|
- for sitegroup in child_sitegroups:
|
|
|
|
|
- sitegroup.save()
|
|
|
|
|
|
|
+ groups = (
|
|
|
|
|
+ SiteGroup(name='Site Group 1A', slug='site-group-1a', parent=parent_groups[0]),
|
|
|
|
|
+ SiteGroup(name='Site Group 1B', slug='site-group-1b', parent=parent_groups[0]),
|
|
|
|
|
+ SiteGroup(name='Site Group 2A', slug='site-group-2a', parent=parent_groups[1]),
|
|
|
|
|
+ SiteGroup(name='Site Group 2B', slug='site-group-2b', parent=parent_groups[1]),
|
|
|
|
|
+ SiteGroup(name='Site Group 3A', slug='site-group-3a', parent=parent_groups[2]),
|
|
|
|
|
+ SiteGroup(name='Site Group 3B', slug='site-group-3b', parent=parent_groups[2]),
|
|
|
|
|
+ )
|
|
|
|
|
+ for site_group in groups:
|
|
|
|
|
+ site_group.save()
|
|
|
|
|
+
|
|
|
|
|
+ child_groups = (
|
|
|
|
|
+ SiteGroup(name='Site Group 1A1', slug='site-group-1a1', parent=groups[0]),
|
|
|
|
|
+ SiteGroup(name='Site Group 1B1', slug='site-group-1b1', parent=groups[1]),
|
|
|
|
|
+ SiteGroup(name='Site Group 2A1', slug='site-group-2a1', parent=groups[2]),
|
|
|
|
|
+ SiteGroup(name='Site Group 2B1', slug='site-group-2b1', parent=groups[3]),
|
|
|
|
|
+ SiteGroup(name='Site Group 3A1', slug='site-group-3a1', parent=groups[4]),
|
|
|
|
|
+ SiteGroup(name='Site Group 3B1', slug='site-group-3b1', parent=groups[5]),
|
|
|
|
|
+ )
|
|
|
|
|
+ for site_group in child_groups:
|
|
|
|
|
+ site_group.save()
|
|
|
|
|
|
|
|
def test_q(self):
|
|
def test_q(self):
|
|
|
params = {'q': 'foobar1'}
|
|
params = {'q': 'foobar1'}
|
|
@@ -150,12 +179,19 @@ class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
|
|
|
def test_parent(self):
|
|
def test_parent(self):
|
|
|
- parent_sitegroups = SiteGroup.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
- params = {'parent_id': [parent_sitegroups[0].pk, parent_sitegroups[1].pk]}
|
|
|
|
|
|
|
+ site_groups = SiteGroup.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
+ params = {'parent_id': [site_groups[0].pk, site_groups[1].pk]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
- params = {'parent': [parent_sitegroups[0].slug, parent_sitegroups[1].slug]}
|
|
|
|
|
|
|
+ params = {'parent': [site_groups[0].slug, site_groups[1].slug]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
|
|
|
+ def test_ancestor(self):
|
|
|
|
|
+ site_groups = SiteGroup.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
+ params = {'ancestor_id': [site_groups[0].pk, site_groups[1].pk]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
|
|
|
|
|
+ params = {'ancestor': [site_groups[0].slug, site_groups[1].slug]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class SiteTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
class SiteTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
queryset = Site.objects.all()
|
|
queryset = Site.objects.all()
|
|
@@ -314,21 +350,29 @@ class LocationTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
Site.objects.bulk_create(sites)
|
|
Site.objects.bulk_create(sites)
|
|
|
|
|
|
|
|
parent_locations = (
|
|
parent_locations = (
|
|
|
- Location(name='Parent Location 1', slug='parent-location-1', site=sites[0]),
|
|
|
|
|
- Location(name='Parent Location 2', slug='parent-location-2', site=sites[1]),
|
|
|
|
|
- Location(name='Parent Location 3', slug='parent-location-3', site=sites[2]),
|
|
|
|
|
|
|
+ Location(name='Location 1', slug='location-1', site=sites[0]),
|
|
|
|
|
+ Location(name='Location 2', slug='location-2', site=sites[1]),
|
|
|
|
|
+ Location(name='Location 3', slug='location-3', site=sites[2]),
|
|
|
)
|
|
)
|
|
|
for location in parent_locations:
|
|
for location in parent_locations:
|
|
|
location.save()
|
|
location.save()
|
|
|
|
|
|
|
|
locations = (
|
|
locations = (
|
|
|
- Location(name='Location 1', slug='location-1', site=sites[0], parent=parent_locations[0], status=LocationStatusChoices.STATUS_PLANNED, description='foobar1'),
|
|
|
|
|
- Location(name='Location 2', slug='location-2', site=sites[1], parent=parent_locations[1], status=LocationStatusChoices.STATUS_STAGING, description='foobar2'),
|
|
|
|
|
- Location(name='Location 3', slug='location-3', site=sites[2], parent=parent_locations[2], status=LocationStatusChoices.STATUS_DECOMMISSIONING, description='foobar3'),
|
|
|
|
|
|
|
+ Location(name='Location 1A', slug='location-1a', site=sites[0], parent=parent_locations[0], status=LocationStatusChoices.STATUS_PLANNED, description='foobar1'),
|
|
|
|
|
+ Location(name='Location 2A', slug='location-2a', site=sites[1], parent=parent_locations[1], status=LocationStatusChoices.STATUS_STAGING, description='foobar2'),
|
|
|
|
|
+ Location(name='Location 3A', slug='location-3a', site=sites[2], parent=parent_locations[2], status=LocationStatusChoices.STATUS_DECOMMISSIONING, description='foobar3'),
|
|
|
)
|
|
)
|
|
|
for location in locations:
|
|
for location in locations:
|
|
|
location.save()
|
|
location.save()
|
|
|
|
|
|
|
|
|
|
+ child_locations = (
|
|
|
|
|
+ Location(name='Location 1A1', slug='location-1a1', site=sites[0], parent=locations[0]),
|
|
|
|
|
+ Location(name='Location 2A1', slug='location-2a1', site=sites[1], parent=locations[1]),
|
|
|
|
|
+ Location(name='Location 3A1', slug='location-3a1', site=sites[2], parent=locations[2]),
|
|
|
|
|
+ )
|
|
|
|
|
+ for location in child_locations:
|
|
|
|
|
+ location.save()
|
|
|
|
|
+
|
|
|
def test_q(self):
|
|
def test_q(self):
|
|
|
params = {'q': 'foobar1'}
|
|
params = {'q': 'foobar1'}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
|
@@ -352,31 +396,38 @@ class LocationTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
def test_region(self):
|
|
def test_region(self):
|
|
|
regions = Region.objects.all()[:2]
|
|
regions = Region.objects.all()[:2]
|
|
|
params = {'region_id': [regions[0].pk, regions[1].pk]}
|
|
params = {'region_id': [regions[0].pk, regions[1].pk]}
|
|
|
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
|
|
|
params = {'region': [regions[0].slug, regions[1].slug]}
|
|
params = {'region': [regions[0].slug, regions[1].slug]}
|
|
|
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
|
|
|
|
|
|
|
|
def test_site_group(self):
|
|
def test_site_group(self):
|
|
|
site_groups = SiteGroup.objects.all()[:2]
|
|
site_groups = SiteGroup.objects.all()[:2]
|
|
|
params = {'site_group_id': [site_groups[0].pk, site_groups[1].pk]}
|
|
params = {'site_group_id': [site_groups[0].pk, site_groups[1].pk]}
|
|
|
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
|
|
|
params = {'site_group': [site_groups[0].slug, site_groups[1].slug]}
|
|
params = {'site_group': [site_groups[0].slug, site_groups[1].slug]}
|
|
|
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
|
|
|
|
|
|
|
|
def test_site(self):
|
|
def test_site(self):
|
|
|
sites = Site.objects.all()[:2]
|
|
sites = Site.objects.all()[:2]
|
|
|
params = {'site_id': [sites[0].pk, sites[1].pk]}
|
|
params = {'site_id': [sites[0].pk, sites[1].pk]}
|
|
|
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
|
|
|
params = {'site': [sites[0].slug, sites[1].slug]}
|
|
params = {'site': [sites[0].slug, sites[1].slug]}
|
|
|
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
|
|
|
|
|
|
|
|
def test_parent(self):
|
|
def test_parent(self):
|
|
|
- parent_groups = Location.objects.filter(name__startswith='Parent')[:2]
|
|
|
|
|
- params = {'parent_id': [parent_groups[0].pk, parent_groups[1].pk]}
|
|
|
|
|
|
|
+ locations = Location.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
+ params = {'parent_id': [locations[0].pk, locations[1].pk]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
- params = {'parent': [parent_groups[0].slug, parent_groups[1].slug]}
|
|
|
|
|
|
|
+ params = {'parent': [locations[0].slug, locations[1].slug]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
|
|
|
|
|
|
|
+ def test_ancestor(self):
|
|
|
|
|
+ locations = Location.objects.filter(parent__isnull=True)[:2]
|
|
|
|
|
+ params = {'ancestor_id': [locations[0].pk, locations[1].pk]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
+ params = {'ancestor': [locations[0].slug, locations[1].slug]}
|
|
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class RackRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
class RackRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
queryset = RackRole.objects.all()
|
|
queryset = RackRole.objects.all()
|