测试用户是否未登录,重定向到登录页面

时间:2019-04-30 08:50:57

标签: django testing

仅测试我的应用程序是否可以在用户未登录的情况下重定向到登录页面。URL/confirmation/TEST01,其中TEST01是反向URL。它应该重定向到/accounts/login/?next=/confirmation/TEST01

但是我遇到一个错误:

AssertionError: 404 != 302 : Response didn't redirect as expected: Response code was 404 (expected 302)

Test.py

def test_redirect_to_login(self):
    response = self.client.get('/confirmation/TEST01/')
    self.assertRedirects(response, '/accounts/login/?next=/confirmation/TEST01', status_code=302, target_status_code=404, fetch_redirect_response=True)

端子

[30/Apr/2019 08:45:01] "GET /confirmation/XZC456 HTTP/1.1" 302 0
Not Found: /accounts/login/
[30/Apr/2019 08:45:01] "GET /accounts/login/?next=/confirmation/XZC456 HTTP/1.1" 404 2386

1 个答案:

答案 0 :(得分:0)

使用login_redirect装饰器。

from django.contrib.auth.decorators import login_redirect

@login_redirect
def my_view(request):