test_testutils.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. from django.urls import reverse
  2. from misago.users.testutils import AuthenticatedUserTestCase, SuperUserTestCase, UserTestCase
  3. class UserTestCaseTests(UserTestCase):
  4. def test_get_anonymous_user(self):
  5. """get_anonymous_user returns anon user instance"""
  6. user = self.get_anonymous_user()
  7. self.assertFalse(user.is_authenticated)
  8. self.assertTrue(user.is_anonymous)
  9. def test_get_authenticated_user(self):
  10. """get_authenticated_user returns auth user instance"""
  11. user = self.get_authenticated_user()
  12. self.assertTrue(user.is_authenticated)
  13. self.assertFalse(user.is_anonymous)
  14. self.assertFalse(user.is_staff)
  15. self.assertFalse(user.is_superuser)
  16. def test_get_superuser(self):
  17. """get_superuser returns auth user instance"""
  18. user = self.get_superuser()
  19. self.assertTrue(user.is_authenticated)
  20. self.assertFalse(user.is_anonymous)
  21. self.assertTrue(user.is_staff)
  22. self.assertTrue(user.is_superuser)
  23. def test_login_user(self):
  24. """login_user logs user"""
  25. user = self.get_authenticated_user()
  26. self.login_user(user)
  27. response = self.client.get('/api/auth/')
  28. self.assertEqual(response.status_code, 200)
  29. user_json = response.json()
  30. self.assertEqual(user_json['id'], user.id)
  31. def test_login_superuser(self):
  32. """login_user logs superuser"""
  33. user = self.get_superuser()
  34. self.login_user(user)
  35. response = self.client.get('/api/auth/')
  36. self.assertEqual(response.status_code, 200)
  37. user_json = response.json()
  38. self.assertEqual(user_json['id'], user.id)
  39. def test_logout_user(self):
  40. """logout_user logs user out"""
  41. user = self.get_authenticated_user()
  42. self.login_user(user)
  43. self.logout_user()
  44. response = self.client.get('/api/auth/')
  45. self.assertEqual(response.status_code, 200)
  46. user_json = response.json()
  47. self.assertIsNone(user_json['id'])
  48. def test_logout_superuser(self):
  49. """logout_user logs superuser out"""
  50. user = self.get_superuser()
  51. self.login_user(user)
  52. self.logout_user()
  53. response = self.client.get('/api/auth/')
  54. self.assertEqual(response.status_code, 200)
  55. user_json = response.json()
  56. self.assertIsNone(user_json['id'])
  57. class AuthenticatedUserTestCaseTests(AuthenticatedUserTestCase):
  58. def test_setup(self):
  59. """setup executed correctly"""
  60. response = self.client.get(reverse('misago:index'))
  61. self.assertContains(response, self.user.username)
  62. def test_reload_user(self):
  63. """reload_user reloads user"""
  64. user_pk = self.user.pk
  65. self.reload_user()
  66. self.assertEqual(user_pk, self.user.pk)
  67. class SuperUserTestCaseTests(SuperUserTestCase):
  68. def test_setup(self):
  69. """setup executed correctly"""
  70. self.assertTrue(self.user.is_staff)
  71. self.assertTrue(self.user.is_superuser)
  72. response = self.client.get('/api/auth/')
  73. self.assertEqual(response.status_code, 200)
  74. user_json = response.json()
  75. self.assertEqual(user_json['id'], self.user.id)