即使使用 force_autenthicate() ,测试用例也返回 401

Testcase returning 401 even with force_autenthicate()

我正在尝试使用以下测试用例测试我的项目视图:

    def test_jump_story(self):
    c = APIClient()
    user = User.objects.get(username='test1')
    c.login(username=user.username, password='123')
    room_id = PokerRoom.objects.get(name='planning').id
    room_index = PokerRoom.objects.get(name='planning').index
    request = c.post(reverse('jumpstory', kwargs={'pk': room_id, 'index': room_index}))
    c.force_authenticate(user=user)
    self.assertEqual(200,request.status_code)

但是 returns 这个 <Response status_code=401, "application/json"> 即使使用 force_authenticate。

我正在测试的视图:

class jumpStory(APIView):
permission_classes = [IsAuthenticated]
def post(self, request, pk, index):
    data= self.request.data
    index = self.kwargs['index']
    pk = self.kwargs['pk']
    if PokerRoom.objects.filter(id=pk).exists():
        body = {'index':index}
        message_socket("JUMP_STORY", pk, body)
        return Response({'success':"JUMP_STORY"}, status=200)
    else:
        return Response({'error':'message not sended'}, status=400)

我的测试有什么问题?

使用 APITestCase 而不是 Django TestCase。 from rest_framework.test import APITestCase.

from rest_framework.test import APITestCase
class MyTests(APITestCase)
    def setUp(self):
        user = User.objects.create(username=john)
        user.set_password("1234")
        user.save()
        self.client.force_authenticate(user=user)


    def test_jump_story(self):
         # do your test