test_activation_views.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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, BAN_USERNAME
  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(check_type=BAN_USERNAME,
  17. banned_value='bob',
  18. user_message='Nope!')
  19. activation_token = make_activation_token(test_user)
  20. response = self.client.get(
  21. reverse('misago:activate_by_token',
  22. kwargs={'user_id': test_user.pk,
  23. 'token': activation_token}))
  24. self.assertEqual(response.status_code, 403)
  25. self.assertIn("<p>Nope!</p>", response.content)
  26. test_user = User.objects.get(pk=test_user.pk)
  27. self.assertEqual(test_user.requires_activation, 1)
  28. def test_view_activate_invalid_token(self):
  29. """activate with invalid token shows error"""
  30. User = get_user_model()
  31. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  32. requires_activation=1)
  33. activation_token = make_activation_token(test_user)
  34. response = self.client.get(
  35. reverse('misago:activate_by_token',
  36. kwargs={'user_id': test_user.pk,
  37. 'token': activation_token + 'acd'}))
  38. self.assertEqual(response.status_code, 400)
  39. test_user = User.objects.get(pk=test_user.pk)
  40. self.assertEqual(test_user.requires_activation, 1)
  41. def test_view_activate_active(self):
  42. """activate active user shows error"""
  43. User = get_user_model()
  44. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  45. activation_token = make_activation_token(test_user)
  46. response = self.client.get(
  47. reverse('misago:activate_by_token',
  48. kwargs={'user_id': test_user.pk,
  49. 'token': activation_token}))
  50. self.assertEqual(response.status_code, 200)
  51. test_user = User.objects.get(pk=test_user.pk)
  52. self.assertEqual(test_user.requires_activation, 0)
  53. def test_view_activate_admin_activated(self):
  54. """activate inactive user passess"""
  55. User = get_user_model()
  56. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  57. requires_activation=2)
  58. activation_token = make_activation_token(test_user)
  59. response = self.client.get(
  60. reverse('misago:activate_by_token',
  61. kwargs={'user_id': test_user.pk,
  62. 'token': activation_token}))
  63. self.assertEqual(response.status_code, 200)
  64. self.assertIn("only by one of the administrators", response.content)
  65. test_user = User.objects.get(pk=test_user.pk)
  66. self.assertEqual(test_user.requires_activation, 2)
  67. def test_view_activate_inactive(self):
  68. """activate inactive user passess"""
  69. User = get_user_model()
  70. test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  71. requires_activation=1)
  72. activation_token = make_activation_token(test_user)
  73. response = self.client.get(
  74. reverse('misago:activate_by_token',
  75. kwargs={'user_id': test_user.pk,
  76. 'token': activation_token}))
  77. self.assertEqual(response.status_code, 200)
  78. self.assertIn("your account has been activated!", response.content)
  79. test_user = User.objects.get(pk=test_user.pk)
  80. self.assertEqual(test_user.requires_activation, 0)