Jeremy Stretch 6 лет назад
Родитель
Сommit
39d0261d8a
1 измененных файлов с 72 добавлено и 0 удалено
  1. 72 0
      netbox/tenancy/tests/test_filters.py

+ 72 - 0
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)