Используя салат, как я могу проверить, что письмо, отправленное из веб-приложения Django, имеет правильное содержимое? - PullRequest
2 голосов
/ 17 октября 2011

У меня есть веб-приложение на основе Django, которое необходимо отправить подтверждение по электронной почте пользователю при попытке изменить зарегистрированный адрес электронной почты.Функциональность была реализована, но тестирование салата, предназначенное для проверки содержимого электронного письма, завершается неудачей.

Для проверки операции я планировал использовать бэкэнд файла (EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend '), а затем проверьте содержимое файла на шаге моего салата.

При работе "в обычном режиме" (например, через run.server manage.py) файл электронной почты создается, как и ожидалось.При запуске через салат (manage.py урожай) веб-сайт, кажется, работает правильно (я использую Selenium для его управления), но файл электронной почты не создается.

Что я пропустил?Есть ли какие-то настройки (например, в файле terrain.py), которые мне нужно использовать, чтобы файловый бэкэнд также использовался в процессе тестирования?

1 Ответ

4 голосов
/ 21 ноября 2011

Вы можете использовать django.core.mail.outbox, как описано в django docs https://docs.djangoproject.com/en/dev/topics/testing/#email-services

from django.core import mail

assert len(mail.outbox) == 1
assert mail.outbox[0].subject == 'Subject here'

Lettuse использует django.test.utils.setup_test_environment, который переопределяет бэкэнд электронной почты на бэкэнд электронной почты locmem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...