test_mail.py 1.6 KB

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