testutils.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from django.contrib.auth import get_user_model
  2. from misago.core.testutils import MisagoTestCase
  3. from .models import AnonymousUser, Online
  4. UserModel = get_user_model()
  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. return UserModel.objects.create_user("TestUser", "test@user.com", self.USER_PASSWORD)
  16. def get_superuser(self):
  17. return UserModel.objects.create_superuser(
  18. "TestSuperUser", "test@superuser.com", self.USER_PASSWORD
  19. )
  20. def login_user(self, user, password=None):
  21. self.client.force_login(user)
  22. def logout_user(self):
  23. if self.user.is_authenticated:
  24. Online.objects.filter(user=self.user).delete()
  25. self.client.logout()
  26. class AuthenticatedUserTestCase(UserTestCase):
  27. def get_initial_user(self):
  28. self.user = self.get_authenticated_user()
  29. self.login_user(self.user)
  30. def reload_user(self):
  31. self.user = UserModel.objects.get(id=self.user.id)
  32. class SuperUserTestCase(AuthenticatedUserTestCase):
  33. def get_initial_user(self):
  34. self.user = self.get_superuser()
  35. self.login_user(self.user)