在Django

时间:2016-03-12 13:51:39

标签: python django

在我的settings.py我有关于我的smtp电子邮件后端的配置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'user@domain.com'
EMAIL_HOST_PASSWORD = 'user'
DEFAULT_FROM_EMAIL = 'contact@domain.com'

当我在开发期间运行服务器时(即python manage.py runserver),电子邮件会正常发送。但是,当我运行验收测试(即python manage.py test functional_tests)时,不会发送电子邮件。

阅读文档,我发现here Django认为在测试期间发送虚拟盒子的电子邮件是件好事,但文档并没有告诉我如何禁用此功能(我确实想要在运行测试时通过smtp发送电子邮件。)

有人知道在运行测试时我必须通过smtp发送电子邮件吗?

提前致谢。

1 个答案:

答案 0 :(得分:4)

使用override_settings装饰器。

from django.test import override_settings

class TestView(TestCase):
    @override_settings(EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend')
    def test_view(self):
       ...