如何测试使用 django-rest-auth 令牌身份验证的 api?

ami*_*it 3 django-rest-framework django-rest-auth

我使用 django-rest-auth 进行身份验证并使用它提供的令牌进行授权。我也使用了 django-rest 提供的一些 permission_class。在我的每个方法之前,我都在 views.py 中进行了跟踪。

视图.py

@api_view(['GET'])
@authentication_classes((TokenAuthentication))
@permission_classes((permissions.IsAuthenticated,))
Run Code Online (Sandbox Code Playgroud)

我如何在测试这些 api 时进行身份验证以访问 views.py 中的该方法。因为没有身份验证它会禁止 403。如何在测试中模拟身份验证。

Bre*_*lva 9

首先,您需要为此用户创建一个用户和一个令牌,然后创建一个django.test.Clientusing 令牌作为标头。

from rest_framework.authtoken.models import Token                                  

from django.test import Client 

self.user = Usuario.objects.create_user(                                   
    nome='test',                                                                                   
    email='test@email.com',                                                                   
    password='test',                                                    
)                                                                             
token, created = Token.objects.get_or_create(user=self.user)                
self.client = Client(HTTP_AUTHORIZATION='Token ' + token.key)
Run Code Online (Sandbox Code Playgroud)

然后您可以使用此经过身份验证的客户端发出任何请求。

self.client.get('url')