test_activation_views.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from django.contrib.auth import get_user_model
  2. from django.core.urlresolvers import reverse
  3. from django.test import TestCase
  4. from misago.users.models import BAN_USERNAME, Ban
  5. from misago.users.tokens import make_activation_token
  6. class ActivationViewsTests(TestCase):
  7. def test_request_view_returns_200(self):
  8. """request new activation link view returns 200"""
  9. response = self.client.get(reverse('misago:request-activation'))
  10. self.assertEqual(response.status_code, 200)
  11. def test_view_activate_banned(self):
  12. """activate banned user shows error"""
  13. User = get_user_model()
  14. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  15. requires_activation=1)
  16. Ban.objects.create(
  17. check_type=BAN_USERNAME,
  18. banned_value='bob',
  19. user_message='Nope!',
  20. )
  21. activation_token = make_activation_token(test_user)
  22. response = self.client.get(reverse('misago:activate-by-token', kwargs={
  23. 'pk': test_user.pk,
  24. 'token': activation_token,
  25. }))
  26. self.assertEqual(response.status_code, 403)
  27. self.assertIn("<p>Nope!</p>", response.content)
  28. test_user = User.objects.get(pk=test_user.pk)
  29. self.assertEqual(test_user.requires_activation, 1)
  30. def test_view_activate_invalid_token(self):
  31. """activate with invalid token shows error"""
  32. User = get_user_model()
  33. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  34. requires_activation=1)
  35. activation_token = make_activation_token(test_user)
  36. response = self.client.get(reverse('misago:activate-by-token', kwargs={
  37. 'pk': test_user.pk,
  38. 'token': activation_token + 'acd',
  39. }))
  40. self.assertEqual(response.status_code, 400)
  41. test_user = User.objects.get(pk=test_user.pk)
  42. self.assertEqual(test_user.requires_activation, 1)
  43. def test_view_activate_active(self):
  44. """activate active user shows error"""
  45. User = get_user_model()
  46. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  47. activation_token = make_activation_token(test_user)
  48. response = self.client.get(reverse('misago:activate-by-token', kwargs={
  49. 'pk': test_user.pk,
  50. 'token': activation_token,
  51. }))
  52. self.assertEqual(response.status_code, 200)
  53. test_user = User.objects.get(pk=test_user.pk)
  54. self.assertEqual(test_user.requires_activation, 0)
  55. def test_view_activate_inactive(self):
  56. """activate inactive user passess"""
  57. User = get_user_model()
  58. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  59. requires_activation=1)
  60. activation_token = make_activation_token(test_user)
  61. response = self.client.get(reverse('misago:activate-by-token', kwargs={
  62. 'pk': test_user.pk,
  63. 'token': activation_token,
  64. }))
  65. self.assertEqual(response.status_code, 200)
  66. self.assertIn("your account has been activated!", response.content)
  67. test_user = User.objects.get(pk=test_user.pk)
  68. self.assertEqual(test_user.requires_activation, 0)