Возможно, я не понимаю, как работает исходящая почта, но из документации я понял, что она просто перехватывает всю исходящую почту во время тестирования.
Я создал новый проект с новым приложением и добавил следующий код.
from django.test import TestCase
from django.core.mail import send_mail, outbox
class SimpleTest(TestCase):
def test_basic_addition(self):
send_mail('Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False)
self.assertEqual( len( outbox ), 1 )
Когда я запускаю python manage.py test app_name, он выдает ошибку подтверждения, что 0! = 1. Я что-то не так делаю?
Обновление
Что ж, это странно, если я импортирую django.core.mail и использую mail.outbox, он работает.
Попытка сравнить прямой импорт исходящих и mail.outbox, и они оба дают разные результаты
from django.core import mail
from django.core.mail import send_mail, outbox
...
self.assertEqual(outbox, mail.outbox)
возвращается:
- []
+ [<django.core.mail.message.EmailMessage object at 0x1e1fd90>]
Может быть, я долго работал и упустил что-то действительно очевидное?