APIRequestFactory with force\u authenticate:GET返回404

2024-06-15 17:30:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Rest框架为Django及其APIRequestFactory运行一个APITestCase。 当我用APIClient请求这个api时,我能够返回一个状态200,但是我用APIRequestFactory得到了404。我想使用APIRequestFactory,因为它在APIClient上的测试中具有“黑盒”效应。在

我已经根据force_authenticate的REST框架文档对我的测试进行了建模。它似乎与APIRequestFactory返回HTTPRequest而不是this question中的请求的问题无关。在

进口:

from rest_framework.test import APIClient, APITestCase, APIRequestFactory
from myapp.factories import UserFactory
from .views import internalPostListView

使用成功获取的APIClient进行测试(返回状态200):

^{pr2}$

使用找不到api的APIRequestFactory进行测试(返回状态404):

class PostTests(APITestCase):

    @classmethod
    def setUpTestData(cls):
        cls.factory = APIRequestFactory()
        cls.user = UserFactory()

    def test_successful_get_internal_post_list(self):

        self.user.is_superuser = True
        view = internalPostListView #Note: internalPostListView = InternalPostListView.as_view()
        request = self.factory.get('/internal/posts/')
        force_authenticate(request, user = self.user)
        response = view(request)

    self.assertEquals(200, response.status_code)

它无法获取api,而不是身份验证或权限问题。它似乎与我的文件相符-我遗漏了什么?在


Tags: fromimportself框架viewapirequest状态