test_api.py 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. from django.urls import reverse
  2. from tenancy.models import *
  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. ]
  77. class ContactGroupTest(APIViewTestCases.APIViewTestCase):
  78. model = ContactGroup
  79. brief_fields = ['_depth', 'contact_count', 'display', 'id', 'name', 'slug', 'url']
  80. bulk_update_data = {
  81. 'description': 'New description',
  82. }
  83. @classmethod
  84. def setUpTestData(cls):
  85. parent_contact_groups = (
  86. ContactGroup.objects.create(name='Parent Contact Group 1', slug='parent-contact-group-1'),
  87. ContactGroup.objects.create(name='Parent Contact Group 2', slug='parent-contact-group-2'),
  88. )
  89. ContactGroup.objects.create(name='Contact Group 1', slug='contact-group-1', parent=parent_contact_groups[0])
  90. ContactGroup.objects.create(name='Contact Group 2', slug='contact-group-2', parent=parent_contact_groups[0])
  91. ContactGroup.objects.create(name='Contact Group 3', slug='contact-group-3', parent=parent_contact_groups[0])
  92. cls.create_data = [
  93. {
  94. 'name': 'Contact Group 4',
  95. 'slug': 'contact-group-4',
  96. 'parent': parent_contact_groups[1].pk,
  97. },
  98. {
  99. 'name': 'Contact Group 5',
  100. 'slug': 'contact-group-5',
  101. 'parent': parent_contact_groups[1].pk,
  102. },
  103. {
  104. 'name': 'Contact Group 6',
  105. 'slug': 'contact-group-6',
  106. 'parent': parent_contact_groups[1].pk,
  107. },
  108. ]
  109. class ContactRoleTest(APIViewTestCases.APIViewTestCase):
  110. model = ContactRole
  111. brief_fields = ['display', 'id', 'name', 'slug', 'url']
  112. create_data = [
  113. {
  114. 'name': 'Contact Role 4',
  115. 'slug': 'contact-role-4',
  116. },
  117. {
  118. 'name': 'Contact Role 5',
  119. 'slug': 'contact-role-5',
  120. },
  121. {
  122. 'name': 'Contact Role 6',
  123. 'slug': 'contact-role-6',
  124. },
  125. ]
  126. bulk_update_data = {
  127. 'description': 'New description',
  128. }
  129. @classmethod
  130. def setUpTestData(cls):
  131. contact_roles = (
  132. ContactRole(name='Contact Role 1', slug='contact-role-1'),
  133. ContactRole(name='Contact Role 2', slug='contact-role-2'),
  134. ContactRole(name='Contact Role 3', slug='contact-role-3'),
  135. )
  136. ContactRole.objects.bulk_create(contact_roles)
  137. class ContactTest(APIViewTestCases.APIViewTestCase):
  138. model = Contact
  139. brief_fields = ['display', 'id', 'name', 'url']
  140. bulk_update_data = {
  141. 'group': None,
  142. 'comments': 'New comments',
  143. }
  144. @classmethod
  145. def setUpTestData(cls):
  146. contact_groups = (
  147. ContactGroup.objects.create(name='Contact Group 1', slug='contact-group-1'),
  148. ContactGroup.objects.create(name='Contact Group 2', slug='contact-group-2'),
  149. )
  150. contacts = (
  151. Contact(name='Contact 1', group=contact_groups[0]),
  152. Contact(name='Contact 2', group=contact_groups[0]),
  153. Contact(name='Contact 3', group=contact_groups[0]),
  154. )
  155. Contact.objects.bulk_create(contacts)
  156. cls.create_data = [
  157. {
  158. 'name': 'Contact 4',
  159. 'group': contact_groups[1].pk,
  160. },
  161. {
  162. 'name': 'Contact 5',
  163. 'group': contact_groups[1].pk,
  164. },
  165. {
  166. 'name': 'Contact 6',
  167. 'group': contact_groups[1].pk,
  168. },
  169. ]