单元测试以及禁止发送邮件
当在单元测试中,或者在一个开发环境中,能够禁止邮件发送是十分有用的。
如果设置项 TESTING 设置成 True,emails 将会被禁止发送。调用 send() 发送邮件实际上不会有任何邮件被发送。
另外在测试环境之中的话,你可以设置 MAIL_SUPPRESS_SEND 为 True,这也会有相同的效果。
然而,当单元测试的时候追踪邮件是否发送成功也是十分有用的。
为了能够追踪发送邮件的“轨迹”,可以使用 record_messages 方法:
1. with mail.record_messages() as outbox:
3. mail.send_message(subject='testing',
4. body='test',
5. recipients=emails)
7. assert len(outbox) == 1
8. assert outbox[0].subject == "testing"
outbox 是一个 发送 Message 实例的列表。
为了使得上述代码能够正常运行,必须安装 blinker 包。
需要注意的是以前的处理方式,即把 outbox 赋予给 g 对象已经过时。
