1

我希望能够测试 djang-rest-framework-jwt,这样我就可以编写一些自定义的自定义有效负载处理程序。我在通过 登录时遇到问题obtain_jwt_token

这是一个简单的测试,应该返回 200 状态代码,但我得到 400 错误代码

AssertionError: {'non_field_errors': ['无法使用提供的凭据登录。']}

如果我使用并传入用户名和密码的字典,我可以让它通过User.objects.create_user(),但我想使用 factory boy 来与我的其余测试保持一致。

工厂.py

C

lass UserFactory(factory.DjangoModelFactory):
    class Meta:
        model = User

    username = 'temp'
    email = 'temp@email.com'
    password = 'password'

    @classmethod
    def _create(cls, model_class, *args, **kwargs):
        """Override the default ``_create`` with our custom call."""
        manager = cls._get_manager(model_class)

        return manager.create_user(*args, **kwargs)

测试.py

class TestAuthentication:
    def test_jwt(self):
        user = UserFactory()
        request_factory = APIRequestFactory()
        data = {
            'username': user.username,
            'password': user.password
        }

        request = request_factory.post('/', data=data)
        response = obtain_jwt_token(request)

        assert response.status_code == status.HTTP_200_OK, response.data
4

0 回答 0