testutils.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. USER_IP = '127.0.0.1'
  8. def setUp(self):
  9. super().setUp()
  10. self.get_initial_user()
  11. def get_initial_user(self):
  12. self.user = self.get_anonymous_user()
  13. def get_anonymous_user(self):
  14. return AnonymousUser()
  15. def get_authenticated_user(self):
  16. return UserModel.objects.create_user(
  17. "TestUser",
  18. "test@user.com",
  19. self.USER_PASSWORD,
  20. joined_from_ip=self.USER_IP,
  21. )
  22. def get_superuser(self):
  23. user = UserModel.objects.create_superuser(
  24. "TestSuperUser", "test@superuser.com", self.USER_PASSWORD
  25. )
  26. user.joined_from_ip = self.USER_IP
  27. user.save()
  28. return user
  29. def login_user(self, user, password=None):
  30. self.client.force_login(user)
  31. def logout_user(self):
  32. if self.user.is_authenticated:
  33. Online.objects.filter(user=self.user).delete()
  34. self.client.logout()
  35. class AuthenticatedUserTestCase(UserTestCase):
  36. def get_initial_user(self):
  37. self.user = self.get_authenticated_user()
  38. self.login_user(self.user)
  39. def reload_user(self):
  40. self.user = UserModel.objects.get(id=self.user.id)
  41. class SuperUserTestCase(AuthenticatedUserTestCase):
  42. def get_initial_user(self):
  43. self.user = self.get_superuser()
  44. self.login_user(self.user)