test_testutils.py 3.2 KB

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