Django测试返回AnonymousUser实例,而不是新用户

时间:2019-07-19 01:25:49

标签: django testing

重要信息:Django ver 2.2.2,已激活会话和身份验证中间件,“自定义用户”模型是标准的AbstractUser,带有已添加的自定义字段,在AbstractUser中没有任何更改。

我正在尝试为我的视图实现Django测试,有一个视图定义:

from django.shortcuts import render, redirect

from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User, Group
from django.contrib.auth import login, logout, authenticate

from .models import CustomUser


def listreport(request):
    curuser = request.user
    print(curuser)
    return render(request, 'fettwa/inmin/listreport.html')

测试代码是这样的(我认为我在此处复制粘贴时有误意向):

from django.test import TestCase, Client
from fettwa import models, forms, views
from fettwa.models import CustomUser
from django.contrib import auth
from django.contrib.auth.models import User, Group

class Auth_Test(TestCase):
     def test_client(self):
        self.user = CustomUser.objects.create_user(username='test_client', password='pass', role=0)
        user = Client().login(username='test_client', password='pass')
        print(self.user.password)
        print(self.user.username)
        if user:
             print("Client-like user successfully created and login")
        Client().get('/listreport')

所有这些代码都为我提供了此输出(可以看到视图中的AnonymousUser):

Creating test database for alias 'default'...
System check identified no issues (0 silenced).
Client-like user successfully created and login
AnonymousUser
<HttpResponse status_code=200, "text/html; charset=utf-8">
.
----------------------------------------------------------------------
Ran 1 test in 0.721s

OK
Destroying test database for alias 'default'...

0 个答案:

没有答案