Django 电子邮件后端设置不起作用
Django Email Backend Setting Not Working
我有一个带有特定于测试的设置文件的单元测试,其中包括:
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'
文件路径设置成功,后台设置失败!
有人知道为什么吗?
我还能check/configure做什么?
这是错误报告的内容吗?
Django 1.11
按照此示例覆盖测试中的设置:https://docs.djangoproject.com/en/2.0/topics/testing/tools/#django.test.SimpleTestCase.settings
这是记录在案的行为。 Django 将常规电子邮件后端替换为虚拟后端。然后,您使用 mail.outbox
访问测试中的 "sent" 封电子邮件。 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):
...
我有一个带有特定于测试的设置文件的单元测试,其中包括:
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'
文件路径设置成功,后台设置失败!
有人知道为什么吗?
我还能check/configure做什么?
这是错误报告的内容吗?
Django 1.11
按照此示例覆盖测试中的设置:https://docs.djangoproject.com/en/2.0/topics/testing/tools/#django.test.SimpleTestCase.settings
这是记录在案的行为。 Django 将常规电子邮件后端替换为虚拟后端。然后,您使用 mail.outbox
访问测试中的 "sent" 封电子邮件。 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):
...