使用生菜,我如何验证从Django Web应用程序发送的电子邮件是否具有正确的内容?

时间:2011-10-17 14:50:21

标签: python django lettuce

我有一个基于Django的Web应用程序,需要在尝试更改注册的电子邮件地址时向用户发送确认电子邮件。该功能已经实现,但旨在验证电子邮件内容的生菜测试失败。

为了验证操作,我的计划是使用文件后端(EMAIL_BACKEND ='django.core.mail.backends.filebased.EmailBackend'),然后在我的生菜步骤中验证文件的内容。

当“正常”运行时(例如,通过manage.py runserver),将按预期创建电子邮件文件。当通过生菜(manage.py harvest)运行时,网站似乎正在被正确驱动(我使用Selenium来驱动它)但没有生成电子邮件文件。

我错过了什么?我需要使用一些设置(例如在terrain.py文件中),以便在测试过程中使用文件后端吗?

1 个答案:

答案 0 :(得分:4)

您可以按照django docs https://docs.djangoproject.com/en/dev/topics/testing/#email-services

中的说明使用django.core.mail.outbox
from django.core import mail

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

Lettuce使用django.test.utils.setup_test_environment覆盖电子邮件后端到locmem电子邮件后端。