test_registration_views.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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.conf import settings
  6. class RegisterDecoratorTests(TestCase):
  7. def tearDown(self):
  8. settings.reset_settings()
  9. def test_register_decorator_calls_valid_view_200(self):
  10. """register decorator calls valid view"""
  11. settings.override_setting('account_activation', 'disabled')
  12. response = self.client.get(reverse('misago:register'))
  13. self.assertEqual(response.status_code, 200)
  14. self.assertIn('new registrations are not currently accepted',
  15. response.content)
  16. settings.override_setting('account_activation', 'none')
  17. response = self.client.get(reverse('misago:register'))
  18. self.assertEqual(response.status_code, 200)
  19. self.assertIn('Register new account',
  20. response.content)
  21. class RegisterViewTests(TestCase):
  22. def test_register_view_get_returns_200(self):
  23. """register view returns 200 on GET"""
  24. response = self.client.get(reverse('misago:register'))
  25. self.assertEqual(response.status_code, 200)
  26. def test_register_view_post_creates_active_user(self):
  27. """register view creates active and signed in user on POST"""
  28. settings.override_setting('account_activation', 'none')
  29. response = self.client.post(reverse('misago:register'),
  30. data={'username': 'Bob',
  31. 'email': 'bob@bob.com',
  32. 'password': 'pass123'})
  33. self.assertEqual(response.status_code, 302)
  34. response = self.client.get(reverse('misago:index'))
  35. self.assertIn('Bob', response.content)
  36. User = get_user_model()
  37. User.objects.get_by_username('Bob')
  38. User.objects.get_by_email('bob@bob.com')
  39. response = self.client.get(reverse('misago:index'))
  40. self.assertIn('Bob', response.content)
  41. self.assertIn('Welcome', mail.outbox[0].subject)
  42. def test_register_view_post_creates_inactive_user(self):
  43. """register view creates inactive user on POST"""
  44. settings.override_setting('account_activation', 'user')
  45. response = self.client.post(reverse('misago:register'),
  46. data={'username': 'Bob',
  47. 'email': 'bob@bob.com',
  48. 'password': 'pass123'})
  49. self.assertEqual(response.status_code, 302)
  50. response = self.client.get(reverse('misago:register_completed'))
  51. self.assertIn('bob@bob.com', response.content)
  52. User = get_user_model()
  53. User.objects.get_by_username('Bob')
  54. User.objects.get_by_email('bob@bob.com')
  55. self.assertIn('Welcome', mail.outbox[0].subject)
  56. def test_register_view_post_creates_admin_activated_user(self):
  57. """register view creates admin activated user on POST"""
  58. settings.override_setting('account_activation', 'admin')
  59. response = self.client.post(reverse('misago:register'),
  60. data={'username': 'Bob',
  61. 'email': 'bob@bob.com',
  62. 'password': 'pass123'})
  63. self.assertEqual(response.status_code, 302)
  64. response = self.client.get(reverse('misago:register_completed'))
  65. self.assertIn('administrator', response.content)
  66. User = get_user_model()
  67. User.objects.get_by_username('Bob')
  68. User.objects.get_by_email('bob@bob.com')
  69. self.assertIn('Welcome', mail.outbox[0].subject)