我希望能够测试 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