[英]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.