Unit testing 如何在DRF测试中使用JWT令牌?
我需要测试我的API。例如,我有图像列表页面。我需要对此页面进行测试,但没有身份验证我无法进行测试。我使用JWT。我不知道怎么做。 请帮帮我 tests.pyUnit testing 如何在DRF测试中使用JWT令牌?,unit-testing,django-rest-framework,jwt,Unit Testing,Django Rest Framework,Jwt,我需要测试我的API。例如,我有图像列表页面。我需要对此页面进行测试,但没有身份验证我无法进行测试。我使用JWT。我不知道怎么做。 请帮帮我 tests.py class ImagesListTestCase(APITestCase): def test_images_list(self): response = self.client.get('/api/', HTTP_AUTHORIZATION="JWT {}".format("eyJ0
class ImagesListTestCase(APITestCase):
def test_images_list(self):
response = self.client.get('/api/', HTTP_AUTHORIZATION="JWT {}".format("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTkzNzUxMzMxLCJqdGkiOiI3NWE3NDNkMGU3MDQ0MGNiYjQ3NDExNjQ3MTI5NWVjNSIsInVzZXJfaWQiOjF9.7HkhZ1hRV8OtQJMMLEAVwUnJ0yDt8agFadAsJztFb6A"))
self.assertEqual(response.status_code, status.HTTP_200_OK)
我试着去做
response = self.client.get('/api/', Authorization="Bearer <token>")
response=self.client.get('/api/',Authorization=“Bearer”)
也
response=self.client.get('/api/',Authorization=“JWT”)
response=self.client.get('/api/',HTTP_AUTHORIZATION=“Bearer”)
django为测试创建一个临时数据库;因此,最好从用户名
和密码
获取令牌,如下所示:
class ImagesListTestCase(APITestCase):
def setUp(self) :
self.register_url = reverse("your:register:view") # for example : "users:register"
self.user_data = {
"username": "test_user",
"email": "test_user@gmail.com",
"password": "123456"
}
self.client.post(self.register_url,self.user_data) # user created
auth_url = reverse("your:login:view") #for example :"users:token_obtain_pair"
self.access_token = self.client.post(auth_url,{
"username" : self.user_data.get("username") ,
"password" : self.user_data.get("password")
}).data.get("access") # get access_token for authorization
self.client.credentials(HTTP_AUTHORIZATION=f'Bearer {self.access_token}')
def test_images_list(self):
response = self.client.get('/api/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
django为测试创建一个临时数据库;因此,最好从
用户名
和密码
获取令牌,如下所示:
class ImagesListTestCase(APITestCase):
def setUp(self) :
self.register_url = reverse("your:register:view") # for example : "users:register"
self.user_data = {
"username": "test_user",
"email": "test_user@gmail.com",
"password": "123456"
}
self.client.post(self.register_url,self.user_data) # user created
auth_url = reverse("your:login:view") #for example :"users:token_obtain_pair"
self.access_token = self.client.post(auth_url,{
"username" : self.user_data.get("username") ,
"password" : self.user_data.get("password")
}).data.get("access") # get access_token for authorization
self.client.credentials(HTTP_AUTHORIZATION=f'Bearer {self.access_token}')
def test_images_list(self):
response = self.client.get('/api/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
首先获取JWT令牌。然后我应该做什么?阅读api文档以查看附加令牌的方法,并阅读http客户端文档以查看如何执行。是否有任何错误?首先获取JWT令牌。然后我应该做什么?阅读api文档以查看附加令牌的方法,阅读您的http客户端文档以了解如何做到这一点。您是否收到任何错误?