Django单元测试与认证设置相关的故障

时间:2009-12-05 02:18:29

标签: django unit-testing

在Django中,当我运行“manage.py test”时,我收到了很多与身份验证相关的失败。一些例子:

FAIL: test_password_change_succeeds -- AssertionError 200 != 302
FAIL: Logout without next_page option renders the default template -- AssertionError 200 != 302

Failed example:
    form.non_field_errors()
Expected:
    [u'This account is inactive.']
Got:
    [u'Please enter correct username and password....']

我已经配置了settings.py,以便Django接受来自Apache2的身份验证。在设置中,MIDDLEWARE_CLASSES包括“AuthenticationMiddleware”和“RemoteUserMiddleware”,AUTHENTICATION_BACKENDS包含“RemoteUserBackend”。

我如何在这里找出问题?

更新2 我通过注释掉AUTHENTICATION_BACKENDS的设置来清除测试错误。现在我必须考虑我在测试环境中需要的身份验证状态,但至少我已经解决了这个问题。

第一次更新引用了我之后删除的问题。

2 个答案:

答案 0 :(得分:0)

如果您的身份验证仅适用于Apache,我不希望它在测试中起作用 - 测试运行器不使用Apache。您需要在普通数据库身份验证框架中设置虚拟帐户。

答案 1 :(得分:0)

如上所述,注释掉AUTHENTICATION_BACKENDS的设置会使测试错误消失。