【问题标题】:Django Email Backend Setting Not WorkingDjango电子邮件后端设置不起作用
【发布时间】:2018-08-29 21:14:26
【问题描述】:

我有一个带有测试特定设置文件的单元测试,其中包括:

EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = '/my/file/path'

这不起作用,所以我在运行测试的过程中进入调试器检查设置:

ipdb> from django.conf import settings
ipdb> settings.EMAIL_BACKEND
'django.core.mail.backends.locmem.EmailBackend'
ipdb> settings.EMAIL_FILE_PATH
'/my/file/path'

文件路径设置有效,但后端设置无效!

有人知道为什么吗?

我还能检查/配置什么?

这是一个错误报告吗?

Django 1.11

【问题讨论】:

  • 这是记录在案的行为。 Django 用一个虚拟的后端替换了常规的电子邮件后端。 See the docs.
  • 我认为这就是问题的答案。我最终在测试本身中指定了后端 - 不使用被覆盖的设置,而是作为 send_email 的参数

标签: django email settings


【解决方案1】:

这是记录在案的行为。 Django 用一个虚拟的后端替换了常规的电子邮件后端。然后,您可以使用mail.outbox 访问测试中“已发送”的电子邮件。 See the docs 了解更多信息。

我相信您可以使用 override_settings 覆盖单个测试或测试用例的 EMAIL_BACKEND

from django.test import TestCase, override_settings

class MyTest(TestCase):
    @override_settings(EMAIL_BACKEND='django.core.mail.backends.filebased.EmailBackend')
    def test_email(self):
        ...

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 2015-03-07
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2020-11-13
    相关资源
    最近更新 更多