From 39d0261d8a325be1c6d50d3a47e0563f3dcdfa8e Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 7 Jan 2020 09:41:43 -0500 Subject: [PATCH] Add tests for tenancy filters --- netbox/tenancy/tests/test_filters.py | 72 ++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 netbox/tenancy/tests/test_filters.py diff --git a/netbox/tenancy/tests/test_filters.py b/netbox/tenancy/tests/test_filters.py new file mode 100644 index 000000000..70db8f627 --- /dev/null +++ b/netbox/tenancy/tests/test_filters.py @@ -0,0 +1,72 @@ +from django.test import TestCase + +from tenancy.filters import TenantFilter, TenantGroupFilter +from tenancy.models import Tenant, TenantGroup + + +class TenantGroupTestCase(TestCase): + queryset = TenantGroup.objects.all() + + @classmethod + def setUpTestData(cls): + + groups = ( + TenantGroup(name='Tenant Group 1', slug='tenant-group-1'), + TenantGroup(name='Tenant Group 2', slug='tenant-group-2'), + TenantGroup(name='Tenant Group 3', slug='tenant-group-3'), + ) + TenantGroup.objects.bulk_create(groups) + + def test_id(self): + id_list = self.queryset.values_list('id', flat=True)[:2] + params = {'id': [str(id) for id in id_list]} + self.assertEqual(TenantGroupFilter(params, self.queryset).qs.count(), 2) + + def test_name(self): + params = {'name': ['Tenant Group 1', 'Tenant Group 2']} + self.assertEqual(TenantGroupFilter(params, self.queryset).qs.count(), 2) + + def test_slug(self): + params = {'slug': ['tenant-group-1', 'tenant-group-2']} + self.assertEqual(TenantGroupFilter(params, self.queryset).qs.count(), 2) + + +class TenantTestCase(TestCase): + queryset = Tenant.objects.all() + + @classmethod + def setUpTestData(cls): + + groups = ( + TenantGroup(name='Tenant Group 1', slug='tenant-group-1'), + TenantGroup(name='Tenant Group 2', slug='tenant-group-2'), + TenantGroup(name='Tenant Group 3', slug='tenant-group-3'), + ) + TenantGroup.objects.bulk_create(groups) + + tenants = ( + Tenant(name='Tenant 1', slug='tenant-1', group=groups[0]), + Tenant(name='Tenant 2', slug='tenant-2', group=groups[1]), + Tenant(name='Tenant 3', slug='tenant-3', group=groups[2]), + ) + Tenant.objects.bulk_create(tenants) + + def test_name(self): + params = {'name': ['Tenant 1', 'Tenant 2']} + self.assertEqual(TenantFilter(params, self.queryset).qs.count(), 2) + + def test_slug(self): + params = {'slug': ['tenant-1', 'tenant-2']} + self.assertEqual(TenantFilter(params, self.queryset).qs.count(), 2) + + def test_id__in(self): + id_list = self.queryset.values_list('id', flat=True)[:2] + params = {'id__in': ','.join([str(id) for id in id_list])} + self.assertEqual(TenantFilter(params, self.queryset).qs.count(), 2) + + def test_group(self): + group = TenantGroup.objects.all()[:2] + params = {'group_id': [group[0].pk, group[1].pk]} + self.assertEqual(TenantFilter(params, self.queryset).qs.count(), 2) + params = {'group': [group[0].slug, group[1].slug]} + self.assertEqual(TenantFilter(params, self.queryset).qs.count(), 2)