用生菜测试时无法访问发件箱

时间:2015-07-07 15:25:38

标签: python django lettuce

我正在使用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.',
            'from@example.com', ['to@example.com'],
            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'

found开始,问题在于

  

Django服务器运行的过程与之不同   生菜脚本,这将使发件箱无法访问。

我做了一些研究,找到了可能的解决方案here

这家伙说:

# 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文件中试过,但它没有用。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

经过多方研究后,我设法找到了here我问题的答案。

我唯一需要做的就是编辑settings.py并添加以下行:

EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'