【问题标题】:Django unit testing failures related to authentication settings与身份验证设置相关的 Django 单元测试失败
【发布时间】:2009-12-05 02:18:28
【问题描述】:

在 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 的设置来清除测试错误。现在我必须考虑我在测试环境中需要的身份验证状态,但至少我已经清除了这个问题。

第一次更新提到了一个我已经删除的问题。

【问题讨论】:

  • 哪个版本的django?有时在主干中有损坏的测试。

标签: django unit-testing


【解决方案1】:

如果您的身份验证仅通过 Apache 工作,我不希望它在测试中工作 - 测试运行程序不使用 Apache。您将需要在正常的数据库身份验证框架中设置一个虚拟帐户。

【讨论】:

  • 我有这样一个用户,是用 User.objects.create_user() 创建的——还是不行。我的代码是从 SVN 存储库中下载的,并且我已经运行了 ./manage.py syncdb,但是 Django 是否可能期望数据库中的某些状态不存在 b/c 我还没有经历过一些像'django-admin.py startproject'这样的步骤?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2015-08-18
    • 2022-01-04
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2016-05-09
    • 2018-02-14
    相关资源
    最近更新 更多