test_mailer.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.contrib.auth import get_user_model
  2. from django.core import mail
  3. from django.test import TestCase, override_settings
  4. from django.urls import reverse
  5. @override_settings(ROOT_URLCONF='misago.core.testproject.urls')
  6. class MisagoMailerTests(TestCase):
  7. def test_mail_user(self):
  8. """mail_user sets message in backend"""
  9. User = get_user_model()
  10. user = User.objects.create_user('Bob', 'bob@bob.com', 'pass123')
  11. response = self.client.get(reverse('test-mail-user'))
  12. self.assertEqual(response.status_code, 200)
  13. self.assertEqual(mail.outbox[0].subject, "Misago Test Mail")
  14. # assert that url to user's avatar is valid
  15. html_body = mail.outbox[0].alternatives[0][0]
  16. user_avatar_url = reverse('misago:user-avatar', kwargs={
  17. 'pk': user.pk,
  18. 'size': 32
  19. })
  20. self.assertIn(user_avatar_url, html_body)
  21. def test_mail_users(self):
  22. """mail_users sets messages in backend"""
  23. User = get_user_model()
  24. test_users = (
  25. User.objects.create_user('Alpha', 'alpha@test.com', 'pass123'),
  26. User.objects.create_user('Beta', 'beta@test.com', 'pass123'),
  27. User.objects.create_user('Niner', 'niner@test.com', 'pass123'),
  28. User.objects.create_user('Foxtrot', 'foxtrot@test.com', 'pass123'),
  29. User.objects.create_user('Uniform', 'uniform@test.com', 'pass123'),
  30. )
  31. response = self.client.get(reverse('test-mail-users'))
  32. self.assertEqual(response.status_code, 200)
  33. spams_sent = 0
  34. for message in mail.outbox:
  35. if message.subject == 'Misago Test Spam':
  36. spams_sent += 1
  37. self.assertEqual(spams_sent, len(test_users))