Python Django pytest用于登录
我是pytest新手,正在尝试测试登录名。我不知道如何测试登录 登录视图.pyPython Django pytest用于登录,python,django,pytest-django,Python,Django,Pytest Django,我是pytest新手,正在尝试测试登录名。我不知道如何测试登录 登录视图.py @api_view(['POST','GET']) @permission_classes((AllowAny,)) def ulogin(request): username = request.POST['uname'] password = request.POST['pass'] user = authenticate(username=username, password=passw
@api_view(['POST','GET'])
@permission_classes((AllowAny,))
def ulogin(request):
username = request.POST['uname']
password = request.POST['pass']
user = authenticate(username=username, password=password)
if user is not None and user.is_active:
auth_login(request,user)
serialized = LoginSerializer(user)
print serialized.data
return Response(serialized.data,status=status.HTTP_200_OK)
else:
print "invalid user"
return Response( {
'error_message':"Username/password is incorrect.",
},status=status.HTTP_401_UNAUTHORIZED)
我尝试了以下代码,但无法成功运行错误:'HttpResponse'对象没有属性'uname'
def test_ulogin(self,client):
user = User.objects.create(uname="qw", password='qw')
response = client.post('/', {'uname': 'qw', 'password': 'qw'})
print response.uname
我们应该如何编写登录测试用例。如果要使用
pytest
库或任何其他库或框架进行测试,请使用assert
(或类似函数)验证pytest断言,您可以查看assert
文档
Python还有一个assert
,也可以用来验证断言
使用python的assert语句的一些示例:
assert 2 + 2 == 5 # Raises an AssertionError
assert 2 + 2 == 4 # No exception raised
在第一个示例中,我尝试验证2+2等于5的断言,但由于它不是真的,因此我们需要使用python引发一个AssertionError
第二个示例已验证,因此未引发异常
现在让我们回到你的问题上来。您想测试您的登录API,它在POST参数中接受用户名和密码
为此,您可以做出一些基本断言,例如:
- 如果提供了正确的用户名和密码,则状态代码应为200(assert response.status_code==200)
- 如果提供的用户名或密码不正确,则状态代码应为401(assert response.status_code==401)
ulogin
函数提出更多这样的断言。
并使用pytest的
assert
函数进行验证。当涉及到使用pytest
库或任何其他库或框架进行测试时,您使用assert
(或类似函数)来验证pytest的断言,您可以查看assert
文档
Python还有一个assert
,也可以用来验证断言
使用python的assert语句的一些示例:
assert 2 + 2 == 5 # Raises an AssertionError
assert 2 + 2 == 4 # No exception raised
在第一个示例中,我尝试验证2+2等于5的断言,但由于它不是真的,因此我们需要使用python引发一个AssertionError
第二个示例已验证,因此未引发异常
现在让我们回到你的问题上来。您想测试您的登录API,它在POST参数中接受用户名和密码
为此,您可以做出一些基本断言,例如:
- 如果提供了正确的用户名和密码,则状态代码应为200(assert response.status_code==200)
- 如果提供的用户名或密码不正确,则状态代码应为401(assert response.status_code==401)
ulogin
函数提出更多这样的断言。
并使用pytest的assert
函数进行验证