我正在编写一些测试来检查与我的API的连接。
我已经通过令牌放置了标识,并且通过:]成功为特定的测试用户检索了令牌。
token = Token.objects.get(user__username='testuser')
我正在苦苦挣扎的是使用该令牌来创建一个成功的API请求:
client = APIClient(HTTP_AUTHORIZATION='Token ' + token.key) response = client.get('/patientFull/1/',headers={'Authorization': 'Token ' + token.key})
我一直在寻找许多方法来完成这项工作,而这些是我试图做到的一些方法:
response = requests.get('http://127.0.0.1:8000/patientFull/1/',headers={'Authorization': 'Token ' + token.key} ) client = APIClient() client.credentials(HTTP_AUTHORIZATION='Token ' + token.key) response = client.get('/patientFull/1/')
该测试是一个简单的断言,用于检查响应是否具有来自服务器的200 OK HTTP答案。
上面所有这些方式都返回403 HTTP响应。
这是测试的完整代码(我正在使用夹具向测试数据库填充测试数据):
import json import requests from rest_framework.authtoken.models import Token from rest_framework.test import APIRequestFactory, APITestCase, APIClient class CustomerAPITestBack(APITestCase): fixtures = ['new-fixtures.json'] def testDE(self): token = Token.objects.get(user__username='jpmichel') client = APIClient(HTTP_AUTHORIZATION='Token ' + token.key) response = client.get('/patientFull/1/',headers={'Authorization': 'Token ' + token.key}) self.assertEqual(200, response.status_code)
我已经为令牌配置了settings.py文件:
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', 'rest_framework.authentication.SessionAuthentication', 'PHCAdmin.authentication.tokenAuthentication.ExpiringTokenAuthentication', ), 'EXCEPTION_HANDLER': 'PHCAdmin.functions.pxlth_exception_handler', } REST_FRAMEWORK_EXPIRY_TIME = 12 # in hours REST_FRAMEWORK_PASSWORD_RENEWALS = 90 # in days
如果禁用令牌身份验证,则此测试通过(GET返回200 OK)
我应该如何执行我的GET请求,以便它使用令牌将其标识为有效用户并返回200 OK HTTP响应?
我正在编写一些测试来检查与我的API的连接。我已经通过令牌放置了标识,并且成功通过以下方式为特定的测试用户检索了令牌:token = Token ....
只需结束这个问题:经过研究后,我发现服务器上的令牌与本地计算机上的令牌不同,我只需要在两边都更新令牌。上面的代码可以正常工作。