test_activation_views.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from django.contrib.auth import get_user_model
  2. from django.core import mail
  3. from django.core.urlresolvers import reverse
  4. from django.test import TestCase
  5. from misago.users.models import Ban, BAN_USERNAME
  6. class ActivationViewTests(TestCase):
  7. def test_view_get_returns_200(self):
  8. """request activation view returns 200 on GET"""
  9. response = self.client.get(reverse('misago:request_activation'))
  10. self.assertEqual(response.status_code, 200)
  11. def test_view_submit(self):
  12. """request activation view sends mail"""
  13. User = get_user_model()
  14. User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  15. requires_activation=1)
  16. response = self.client.post(
  17. reverse('misago:request_activation'),
  18. data={'username': 'Bob'})
  19. self.assertEqual(response.status_code, 302)
  20. self.assertIn('Account activation', mail.outbox[0].subject)
  21. def test_view_submit_banned(self):
  22. """request activation for banned shows error"""
  23. User = get_user_model()
  24. User.objects.create_user('Bob', 'bob@test.com', 'Pass.123',
  25. requires_activation=1)
  26. Ban.objects.create(test=BAN_USERNAME, banned_value='bob',
  27. user_message='Nope!')
  28. response = self.client.post(
  29. reverse('misago:request_activation'),
  30. data={'username': 'Bob'})
  31. self.assertEqual(response.status_code, 200)
  32. self.assertIn('Nope!', response.content)
  33. self.assertTrue(not mail.outbox)
  34. def test_view_submit_active(self):
  35. """request activation for active shows error"""
  36. User = get_user_model()
  37. User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  38. response = self.client.post(
  39. reverse('misago:request_activation'),
  40. data={'username': 'Bob'})
  41. self.assertEqual(response.status_code, 200)
  42. self.assertIn('already active', response.content)
  43. self.assertTrue(not mail.outbox)