测试 Django 是否发送了用于密码重置的电子邮件

问题描述

早上好, 我想测试 Django 是否正确发送了一封电子邮件以重置密码,因为我已经自定义了路由。但是我得到一个 <HttpResponseForbidden status_code=403,"text/html"> 并且在我测试它时没有实现电子邮件。 以下是主要功能

  • 网址: path('password_reset/',auth_views.PasswordResetView.as_view(template_name="customer/password_reset_form.html",email_template_name="customer/password_reset_e-mail.html",success_url="done/"),
  • 测试方法
from django.contrib.auth import views as auth_views
from django.test import RequestFactory
from django.contrib.auth.models import AnonymousUser
class PasswordResetTest(TestCase):
    def setUp(self):
        self.factory = RequestFactory()
        self.user = User.objects.create_user(
                    username="user",email="[email protected]",password="pwd")

    def test_send_mail(self):
        request = self.factory.post('/customer/password_reset',{'email': '[email protected]'})
        response = auth_views.PasswordResetView.as_view()(request)
        self.assertTemplateUsed('password_reset_e-mail.html')
        print(response)
        self.assertEqual(len(mail.outBox),1)

通过打印命令,我可以看到错误 403 并且发件箱为空。 我只是找不到合适的文档来对 Django 的这一部分进行测试。

感谢您的支持

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)