test_api.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. from django.urls import reverse
  2. from tenancy.models import Tenant, TenantGroup
  3. from utilities.testing import APITestCase, APIViewTestCases
  4. class AppTest(APITestCase):
  5. def test_root(self):
  6. url = reverse('tenancy-api:api-root')
  7. response = self.client.get('{}?format=api'.format(url), **self.header)
  8. self.assertEqual(response.status_code, 200)
  9. class TenantGroupTest(APIViewTestCases.APIViewTestCase):
  10. model = TenantGroup
  11. brief_fields = ['_depth', 'id', 'name', 'slug', 'tenant_count', 'url']
  12. bulk_update_data = {
  13. 'description': 'New description',
  14. }
  15. @classmethod
  16. def setUpTestData(cls):
  17. parent_tenant_groups = (
  18. TenantGroup.objects.create(name='Parent Tenant Group 1', slug='parent-tenant-group-1'),
  19. TenantGroup.objects.create(name='Parent Tenant Group 2', slug='parent-tenant-group-2'),
  20. )
  21. TenantGroup.objects.create(name='Tenant Group 1', slug='tenant-group-1', parent=parent_tenant_groups[0])
  22. TenantGroup.objects.create(name='Tenant Group 2', slug='tenant-group-2', parent=parent_tenant_groups[0])
  23. TenantGroup.objects.create(name='Tenant Group 3', slug='tenant-group-3', parent=parent_tenant_groups[0])
  24. cls.create_data = [
  25. {
  26. 'name': 'Tenant Group 4',
  27. 'slug': 'tenant-group-4',
  28. 'parent': parent_tenant_groups[1].pk,
  29. },
  30. {
  31. 'name': 'Tenant Group 5',
  32. 'slug': 'tenant-group-5',
  33. 'parent': parent_tenant_groups[1].pk,
  34. },
  35. {
  36. 'name': 'Tenant Group 6',
  37. 'slug': 'tenant-group-6',
  38. 'parent': parent_tenant_groups[1].pk,
  39. },
  40. ]
  41. class TenantTest(APIViewTestCases.APIViewTestCase):
  42. model = Tenant
  43. brief_fields = ['id', 'name', 'slug', 'url']
  44. bulk_update_data = {
  45. 'description': 'New description',
  46. }
  47. @classmethod
  48. def setUpTestData(cls):
  49. tenant_groups = (
  50. TenantGroup.objects.create(name='Tenant Group 1', slug='tenant-group-1'),
  51. TenantGroup.objects.create(name='Tenant Group 2', slug='tenant-group-2'),
  52. )
  53. tenants = (
  54. Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]),
  55. Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[0]),
  56. Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[0]),
  57. )
  58. Tenant.objects.bulk_create(tenants)
  59. cls.create_data = [
  60. {
  61. 'name': 'Tenant 4',
  62. 'slug': 'tenant-4',
  63. 'group': tenant_groups[1].pk,
  64. },
  65. {
  66. 'name': 'Tenant 5',
  67. 'slug': 'tenant-5',
  68. 'group': tenant_groups[1].pk,
  69. },
  70. {
  71. 'name': 'Tenant 6',
  72. 'slug': 'tenant-6',
  73. 'group': tenant_groups[1].pk,
  74. },
  75. ]