使用knox身份验证的Pytest登录视图



我在身份验证中使用knox令牌,所以这是我的Signup和Signin视图,如何使用APIRequestFactory 测试签名视图

class SignUpAPI(generics.GenericAPIView):
serializer_class = RegisterSerializer
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.save()
token = AuthToken.objects.create(user)
return Response({"user": UserSerializer(user, context=self.get_serializer_context()).data})

class SignInAPI(generics.GenericAPIView):
serializer_class = LoginSerializer
def post(self, request):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data
return Response(
{
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"token": AuthToken.objects.create(user)[1],
}
)

端点

path("auth/register", SignUpAPI.as_view(), name="RegisterView"),
path("auth/login", SignInAPI.as_view(), name="LoginView"),```

假设您使用DRF,您可以尝试以下操作:

from rest_framework.test import APIClient
from knox.serializers import User
class SignInAPITests(TestCase):
def test_sign_in(self):
self.user = User.objects.create_user(
username='test_user', 
password='12345')
self.client = APIClient()
response = self.client.post(auth_url,
data=dict(username="test_user", 
password="12345"))
access_token = res.data["token"]
self.assertIsNotNone(access_token)

最新更新