首页 > 解决方案 > 在 DRF 中测试登录时,Pytest 断言返回 401 而不是 200

问题描述

当我尝试测试登录时,我不知道这段代码有什么问题,第一个断言通过,所以用户创建成功,但在第二个断言中失败。

提示:我使用的是简单的 JWT

测试代码:

from user.models import User
from rest_framework.test import APIClient
from mixer.backend.django import mixer
from django.urls import reverse
import pytest

client = APIClient()

@pytest.mark.django_db
class TestUser():
   
   @pytest.fixture
   def setup_user(self):
          user = mixer.blend(User, email='a@a.com', password='1')
          return user

   def test_login(self, setup_user):
          assert User.objects.count() == 1 
          data = {'email': 'a@a.com', 'password': '1'}
          response = client.post(reverse('login'), data=data)
          assert response.status_code == 200

网址:

    path('api/login/', TokenObtainPairView.as_view(), name='login'),

错误:

FAILED user/tests/test_user.py::TestUser::test_login - assert 401 == 200

标签: djangodjango-rest-frameworkpytest

解决方案


尝试添加format="json"到您的客户电话后


推荐阅读