test_api.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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', 'display', '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 = ['display', 'id', 'name', 'slug', 'url']
  44. bulk_update_data = {
  45. 'group': None,
  46. 'description': 'New description',
  47. }
  48. @classmethod
  49. def setUpTestData(cls):
  50. tenant_groups = (
  51. TenantGroup.objects.create(name='Tenant Group 1', slug='tenant-group-1'),
  52. TenantGroup.objects.create(name='Tenant Group 2', slug='tenant-group-2'),
  53. )
  54. tenants = (
  55. Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]),
  56. Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[0]),
  57. Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[0]),
  58. )
  59. Tenant.objects.bulk_create(tenants)
  60. cls.create_data = [
  61. {
  62. 'name': 'Tenant 4',
  63. 'slug': 'tenant-4',
  64. 'group': tenant_groups[1].pk,
  65. },
  66. {
  67. 'name': 'Tenant 5',
  68. 'slug': 'tenant-5',
  69. 'group': tenant_groups[1].pk,
  70. },
  71. {
  72. 'name': 'Tenant 6',
  73. 'slug': 'tenant-6',
  74. 'group': tenant_groups[1].pk,
  75. },
  76. ]