[英]Testing Django API login using credentials and djoser
我目前正在尝试使用Django测试API的端点。 到目前为止,我已经使用了APITestCase,但是登录和使用令牌时遇到了问题。
我有一个使用密码('1')的Clark用户,我登录他,检索他的令牌并将其添加到标头中,然后再发送我的请求。 但是我仍然收到“错误的凭据错误”。
connection_data = {'email':self.clark_user.email, 'password': '1'}
self.client.login(email=self.clark_user.email, password='1')
token = self.client.post(settings.SERVER_HOST+'/api/v1/auth/login', connection_data)
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token.data['auth_token'])
response = self.client.patch(self.url_people, serializer.data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.client.logout()
我的堆栈如下:
和
是我用于测试的库。
Django REST框架具有用于实现此目的的APIClient
类。 我认为与其通过HTTP获得Token
,还可以直接从DB中撤出。 代码看起来像
from rest_framework.authtoken.models import Token
from rest_framework.test import APIClient
# Include an appropriate `Authorization:` header on all requests.
token = Token.objects.get(user__username=self.clark_user.username)
client = APIClient()
client.credentials(HTTP_AUTHORIZATION='Token ' + token.key)
response = client.patch(self.url_people, serializer.data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
client.logout()
可以在“ 测试页面”中找到文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.