也许我不明白发件箱是如何工作的,但从文档中我了解到它只是在测试期间捕获所有外发邮件。
我使用新应用程序创建了一个新项目,并添加了以下代码。
from django.test import TestCase
from django.core.mail import send_mail, outbox
class SimpleTest(TestCase):
def test_basic_addition(self):
send_mail('Subject here',
'Here is the message.',
'[email protected] /cdn-cgi/l/email-protection',
['[email protected] /cdn-cgi/l/email-protection'],
fail_silently=False)
self.assertEqual( len( outbox ), 1 )
当我运行 python manage.py test app_name 时,它给出一个断言错误 0 != 1。我做错了什么吗?
Update
好吧,如果我导入 django.core.mail 并使用 mail.outbox 它确实有效,这很奇怪。
尝试比较直接导入outbox和mail.outbox,它们都给出了不同的结果
from django.core import mail
from django.core.mail import send_mail, outbox
...
self.assertEqual(outbox, mail.outbox)
returns:
- []
+ [<django.core.mail.message.EmailMessage object at 0x1e1fd90>]
也许我已经工作了很长时间并且错过了一些非常明显的东西?