【发布时间】:2022-01-08 17:49:02
【问题描述】:
我真的不适合测试。实际上,我不知道如何编写测试 url 以从视图集中获取响应。 这是我的看法,
class AppraisalAPI(viewsets.ReadOnlyModelViewSet):
queryset = Appraisal.objects.all().order_by('-id')
serializer_class = AppraisalSerializer
def get_permissions(self):
if self.action in ['retrieve']:
self.permission_classes = [IsHRUser | IsManagementUser]
elif self.action in ['list']:
self.permission_classes = [IsUser]
return super(self.__class__, self).get_permissions()
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
data = instance.summary()
return Response(data)
这是我的 urls.py,
router = routers.DefaultRouter()
router.register('appraisal', AppraisalAPI)
urlpatterns = [
path('', include(router.urls)),
]
这是我的测试功能,
def test_appraisal_api_readonly(self):
url = reverse('appraisal-list')
self.client = Client(HTTP_AUTHORIZATION='Token ' + token.key)
resp1 = self.client.get(url, format='json')
self.assertEqual(resp1.status_code, 200)
此测试网址仅进入列表操作。当我给出详细信息而不是列表时,它只会检索动作。 在这里,我想获得 Retrive 函数响应,我如何在获得许可后获得 Retrive 函数响应。 Anyhelp 可观的,..
【问题讨论】:
标签: django unit-testing django-rest-framework