测试send_email不起作用

时间:2017-06-12 17:18:07

标签: python django email

我不明白为什么当我运行测试时,AssertionError总是失败:0!= 1  即使r的结果是1。

apriori

1 个答案:

答案 0 :(得分:0)

发件箱是特殊类型属性,无法直接导入,但是当您使用电子邮件后端发送电子邮件时,mail.outbox将作为列表工作并将电子邮件数据保存到发件箱列表。因此,请使用以下示例来发送或不发送testmail。

from django.core import mail
from django.test import TestCase

class UserProfileTaskTest(TestCase):
    def test_send_email(self):
        subject = 'subject'
        body = 'body'
        from_email = 'from_email@test.com'
        recipient_list = ['recipient@test.com']
        mail.send_mail(
            subject=subject,
            message=body,
            from_email=from_email,
            recipient_list=recipient_list
        )
        self.assertEqual(len(mail.outbox), 1)

当您运行上面的代码时,您有初始mail.outbox = []

但发送电子邮件后,它会在列表中保存EmailMessage个实例。