test_views.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import urllib.parse
  2. from django.test import Client, TestCase
  3. from django.urls import reverse
  4. from tenancy.models import Tenant, TenantGroup
  5. from utilities.testing import create_test_user
  6. class TenantGroupTestCase(TestCase):
  7. def setUp(self):
  8. user = create_test_user(
  9. permissions=[
  10. 'tenancy.view_tenantgroup',
  11. 'tenancy.add_tenantgroup',
  12. ]
  13. )
  14. self.client = Client()
  15. self.client.force_login(user)
  16. TenantGroup.objects.bulk_create([
  17. TenantGroup(name='Tenant Group 1', slug='tenant-group-1'),
  18. TenantGroup(name='Tenant Group 2', slug='tenant-group-2'),
  19. TenantGroup(name='Tenant Group 3', slug='tenant-group-3'),
  20. ])
  21. def test_tenantgroup_list(self):
  22. url = reverse('tenancy:tenantgroup_list')
  23. response = self.client.get(url, follow=True)
  24. self.assertEqual(response.status_code, 200)
  25. def test_tenantgroup_import(self):
  26. csv_data = (
  27. "name,slug",
  28. "Tenant Group 4,tenant-group-4",
  29. "Tenant Group 5,tenant-group-5",
  30. "Tenant Group 6,tenant-group-6",
  31. )
  32. response = self.client.post(reverse('tenancy:tenantgroup_import'), {'csv': '\n'.join(csv_data)})
  33. self.assertEqual(response.status_code, 200)
  34. self.assertEqual(TenantGroup.objects.count(), 6)
  35. class TenantTestCase(TestCase):
  36. def setUp(self):
  37. user = create_test_user(
  38. permissions=[
  39. 'tenancy.view_tenant',
  40. 'tenancy.add_tenant',
  41. ]
  42. )
  43. self.client = Client()
  44. self.client.force_login(user)
  45. tenantgroup = TenantGroup(name='Tenant Group 1', slug='tenant-group-1')
  46. tenantgroup.save()
  47. Tenant.objects.bulk_create([
  48. Tenant(name='Tenant 1', slug='tenant-1', group=tenantgroup),
  49. Tenant(name='Tenant 2', slug='tenant-2', group=tenantgroup),
  50. Tenant(name='Tenant 3', slug='tenant-3', group=tenantgroup),
  51. ])
  52. def test_tenant_list(self):
  53. url = reverse('tenancy:tenant_list')
  54. params = {
  55. "group": TenantGroup.objects.first().slug,
  56. }
  57. response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params)), follow=True)
  58. self.assertEqual(response.status_code, 200)
  59. def test_tenant(self):
  60. tenant = Tenant.objects.first()
  61. response = self.client.get(tenant.get_absolute_url(), follow=True)
  62. self.assertEqual(response.status_code, 200)
  63. def test_tenant_import(self):
  64. csv_data = (
  65. "name,slug",
  66. "Tenant 4,tenant-4",
  67. "Tenant 5,tenant-5",
  68. "Tenant 6,tenant-6",
  69. )
  70. response = self.client.post(reverse('tenancy:tenant_import'), {'csv': '\n'.join(csv_data)})
  71. self.assertEqual(response.status_code, 200)
  72. self.assertEqual(Tenant.objects.count(), 6)