tests.py 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. from django.test import TestCase
  2. from django.contrib.auth.models import User
  3. from django.contrib.contenttypes.models import ContentType
  4. from django.core.urlresolvers import reverse
  5. from .models import Corporation, Adhesion
  6. class AdhesionsTests(TestCase):
  7. def setUp(self):
  8. admin = User.objects.create_user('admin', email='admin@example.net', password='admin', is_superuser=True)
  9. user = User.objects.create_user('user', first_name='first', last_name='last', email='user@example.net', password='user')
  10. adh1 = Adhesion.objects.create(adherent_type=ContentType.objects.get_for_model(User), adherent_id=user.pk)
  11. corp1 = Corporation.objects.create(social_reason='GoodCorp')
  12. corp1.members.add(user)
  13. corp2 = Corporation.objects.create(social_reason='EvilCorp')
  14. adh2 = Adhesion.objects.create(adherent_type=ContentType.objects.get_for_model(Corporation), adherent_id=corp1.pk)
  15. def test_adhesion_backend(self):
  16. user = User.objects.get(username='user')
  17. adhesion = user.profile.adhesion
  18. self.assertFalse(self.client.login(username='%d' % adhesion.pk, password='wrong'))
  19. self.assertFalse(self.client.login(username='ADT%d' % adhesion.pk, password='wrong'))
  20. self.assertFalse(self.client.login(username='9999', password='user'))
  21. self.assertFalse(self.client.login(username='ADT9999', password='user'))
  22. self.assertTrue(self.client.login(username='%d' % adhesion.pk, password='user'))
  23. self.assertTrue(self.client.login(username='ADT%d' % adhesion.pk, password='user'))
  24. def test_user(self):
  25. response = self.client.get(reverse('user'))
  26. self.assertRedirects(response, reverse('login') + '?next=' + reverse('user'))
  27. self.client.login(username='user', password='user')
  28. response = self.client.get(reverse('user'))
  29. self.assertEqual(response.status_code, 200)
  30. def test_corporation(self):
  31. user = User.objects.get(username='user')
  32. corp = Corporation.objects.get(social_reason='EvilCorp')
  33. url = reverse('corporation', kwargs={'pk': corp.pk})
  34. response = self.client.get(url)
  35. self.assertRedirects(response, reverse('login') + '?next=' + url)
  36. self.client.login(username='user', password='user')
  37. response = self.client.get(url)
  38. self.assertEqual(response.status_code, 403)
  39. corp.members.add(user)
  40. response = self.client.get(url)
  41. self.assertEqual(response.status_code, 200)
  42. self.assertContains(response, '')
  43. def test_corporation_menu(self):
  44. self.client.login(username='user', password='user')
  45. response = self.client.get('/')
  46. self.assertContains(response, 'GoodCorp')
  47. self.assertNotContains(response, 'EvilCorp')
  48. def test_users_admin(self):
  49. self.client.login(username='admin', password='admin')
  50. response = self.client.get(reverse('user-list'))
  51. self.assertEqual(response.status_code, 200)
  52. self.assertContains(response, 'admin')
  53. self.assertContains(response, 'user')
  54. response = self.client.get(reverse('user-add'))
  55. self.assertEqual(response.status_code, 200)
  56. response = self.client.get(reverse('user-detail', kwargs={'pk': 1}))
  57. self.assertEqual(response.status_code, 200)
  58. response = self.client.get(reverse('user-edit', kwargs={'pk': 1}))
  59. self.assertEqual(response.status_code, 200)
  60. def test_corporations_admin(self):
  61. self.client.login(username='admin', password='admin')
  62. response = self.client.get(reverse('corporation-list'))
  63. self.assertEqual(response.status_code, 200)
  64. self.assertContains(response, 'GoodCorp')
  65. self.assertContains(response, 'EvilCorp')
  66. response = self.client.get(reverse('corporation-add'))
  67. self.assertEqual(response.status_code, 200)
  68. response = self.client.get(reverse('corporation-detail', kwargs={'pk': 1}))
  69. self.assertEqual(response.status_code, 200)
  70. response = self.client.get(reverse('corporation-edit', kwargs={'pk': 1}))
  71. self.assertEqual(response.status_code, 200)
  72. def test_adhesions_admin(self):
  73. self.client.login(username='admin', password='admin')
  74. response = self.client.get(reverse('adhesion-list'))
  75. self.assertEqual(response.status_code, 200)
  76. self.assertContains(response, 'user')
  77. response = self.client.get(reverse('adhesion-detail', kwargs={'pk': 1}))
  78. self.assertEqual(response.status_code, 200)
  79. def test_adhesion_model(self):
  80. user = User.objects.get(username='user')
  81. adh1 = Adhesion.objects.get(adherent_type=ContentType.objects.get_for_model(User), adherent_id=user.pk)
  82. self.assertEquals(user.profile.adhesion, adh1)
  83. self.assertTrue(adh1.is_physical())
  84. self.assertFalse(adh1.is_moral())
  85. self.assertEquals(adh1.get_adherent_name(), 'first last')
  86. corp = Corporation.objects.get(social_reason='GoodCorp')
  87. adh2 = Adhesion.objects.get(adherent_type=ContentType.objects.get_for_model(Corporation), adherent_id=corp.pk)
  88. self.assertEquals(corp.adhesion, adh2)
  89. self.assertFalse(adh2.is_physical())
  90. self.assertTrue(adh2.is_moral())
  91. self.assertEquals(adh2.get_adherent_name(), 'GoodCorp')
  92. def test_user_creation(self):
  93. self.client.login(username='user', password='user')
  94. # TODO
  95. def test_user_update(self):
  96. self.client.login(username='user', password='user')
  97. # TODO
  98. def test_corp_creation(self):
  99. self.client.login(username='user', password='user')
  100. # TODO
  101. def test_corp_update(self):
  102. self.client.login(username='user', password='user')
  103. # TODO