Я использую Lettuce для тестирования одного из моих приложений.
Я тестирую модуль, чтобы проверить, могу ли я отправлять электронные письма.
Я провел небольшое исследование и нашел в документации Django простой способ проверить это.
from django.core import mail
from django.test import TestCase
class EmailTest(TestCase):
def test_send_email(self):
# Send message.
mail.send_mail('Subject here', 'Here is the message.',
'[email protected]', ['[email protected]'],
fail_silently=False)
# Test that one message has been sent.
self.assertEqual(len(mail.outbox), 1)
# Verify that the subject of the first message is correct.
self.assertEqual(mail.outbox[0].subject, 'Subject here')
Проблема в том, что я продолжаю получать ошибку AttributeError: 'module' object has no attribute 'outbox'
.
Из того, что я найдено, проблема в том, что
Сервер Django работает в другом процессе, чем сценарии салата, что сделало бы папку исходящих недоступными.
Я провел дополнительные исследования и нашел возможное решение здесь.
Парень говорит так:
# in terrain.py
from lettuce import before, after, world
from django.conf import settings
@before.handle_request
def override_mail_settings(httpd, server):
settings.EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
Но я не знаю, каков мой terrain.py
эквивалент. Я пробовал в файле steps.py
, но это не сработало.
Кто-нибудь знает, как это исправить?