testutils.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from django.contrib.auth import get_user_model
  2. from django.urls import reverse
  3. from misago.core.testutils import MisagoTestCase
  4. from .models import AnonymousUser, Online
  5. class UserTestCase(MisagoTestCase):
  6. USER_PASSWORD = "Pass.123"
  7. def setUp(self):
  8. super(UserTestCase, self).setUp()
  9. self.get_initial_user()
  10. def get_initial_user(self):
  11. self.user = self.get_anonymous_user()
  12. def get_anonymous_user(self):
  13. return AnonymousUser()
  14. def get_authenticated_user(self):
  15. User = get_user_model()
  16. return User.objects.create_user(
  17. "TestUser", "test@user.com", self.USER_PASSWORD)
  18. def get_superuser(self):
  19. User = get_user_model()
  20. return User.objects.create_superuser(
  21. "TestSuperUser", "test@superuser.com", self.USER_PASSWORD)
  22. def login_user(self, user, password=None):
  23. self.client.force_login(user)
  24. def logout_user(self):
  25. if self.user.is_authenticated:
  26. Online.objects.filter(user=self.user).delete()
  27. self.client.logout()
  28. class AuthenticatedUserTestCase(UserTestCase):
  29. def get_initial_user(self):
  30. self.user = self.get_authenticated_user()
  31. self.login_user(self.user)
  32. def reload_user(self):
  33. User = get_user_model()
  34. self.user = User.objects.get(id=self.user.id)
  35. class SuperUserTestCase(AuthenticatedUserTestCase):
  36. def get_initial_user(self):
  37. self.user = self.get_superuser()
  38. self.login_user(self.user)