Не удается получить доступ к папке «Исходящие» при тестировании с помощью салата

Я использую 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, но это не сработало.

Кто-нибудь знает, как это исправить?


person undisp    schedule 07.07.2015    source источник


Ответы (1)


Мне удалось найти здесь ответ на мою проблему после еще несколько исследований.

Единственное, что мне нужно было сделать, это отредактировать settings.py и добавить эту строку:

EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'
person undisp    schedule 07.07.2015