testutils.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from django.contrib.auth import get_user_model
  2. from django.core.urlresolvers import reverse
  3. from misago.core.testutils import MisagoTestCase
  4. from misago.users.models import AnonymousUser
  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.post('/api/auth/', data={
  24. 'username': user.email,
  25. 'password': password or self.USER_PASSWORD,
  26. })
  27. self.client.get(reverse('misago:index'))
  28. def logout_user(self):
  29. self.client.post(reverse('misago:logout'))
  30. self.client.get(reverse('misago:index'))
  31. class AuthenticatedUserTestCase(UserTestCase):
  32. def get_initial_user(self):
  33. self.user = self.get_authenticated_user()
  34. self.login_user(self.user)
  35. def reload_user(self):
  36. User = get_user_model()
  37. self.user = User.objects.get(id=self.user.id)
  38. class SuperUserTestCase(AuthenticatedUserTestCase):
  39. def get_initial_user(self):
  40. self.user = self.get_superuser()
  41. self.login_user(self.user)