单元测试 @verified_email_required 视图

Unit Testing A @verified_email_required View

我正在尝试对我的一个用@verified_email_required 修饰的视图进行单元测试。我无法找到如何将用户设置为已验证其电子邮件,以便允许他们查看页面并断言它使用了正确的模板(创建超级用户无济于事)。

这是我得到的错误

AssertionError: False is not true : Template 'enrolment/index.html' was not a template used to render the response. Actual template(s) used: account/verified_email_required.html, account/base.html, base.html

这是我的测试

def test_verified_user_uses_correct_template(self):
    user = User.objects.create_superuser('username')
    self.client.force_login(user)
    response = self.client.get('/enrolment/')
    self.assertTemplateUsed(response, 'enrolment/index.html')

谢谢。

这不是标准的 Django 身份验证,而是 django-allauth 包中的一个。

要验证电子邮件地址,您必须使用 verified=True

创建一个 EmailAdress 对象
 EmailAddress.objects.create(user=user, email="example@example.com", primary=True, verified=True)

您可以在source of django-allauth also some of package tests

中看到以下模型