Django DRF视图集测试方法
我已将一个方法添加到我的viewset中,如下所示:Django DRF视图集测试方法,django,django-rest-framework,pytest,Django,Django Rest Framework,Pytest,我已将一个方法添加到我的viewset中,如下所示: class CustomImageViewSet(viewsets.ModelViewSet): queryset = CustomImage.objects.all() serializer_class = CustomImageSerializer lookup_field = 'id' @action(detail=True, methods=['get'], url_path='sepia/')
class CustomImageViewSet(viewsets.ModelViewSet):
queryset = CustomImage.objects.all()
serializer_class = CustomImageSerializer
lookup_field = 'id'
@action(detail=True, methods=['get'], url_path='sepia/')
def sepia(self, request, id):
# do something
data = image_to_string(image)
return HttpResponse(data, content_type="image/png", status=status.HTTP_200_OK)
由于它不是默认的或重写的请求方法,我不确定如何继续为它编写测试。有什么建议吗?您不清楚测试应该测试什么,但您可以测试响应状态代码,例如:
def test_sepia_api():
api_client = APIClient()
response = api_client.get(path="{path_to_your_api}/sepia/")
assert response.status_code == 200
您不清楚测试应该测试什么,但您可以测试响应状态代码,例如:
def test_sepia_api():
api_client = APIClient()
response = api_client.get(path="{path_to_your_api}/sepia/")
assert response.status_code == 200
我注意到你在用pytest。我假设你也有pytest django(它确实让一切变得更容易)。我喜欢使用请求工厂,因为如果您有身份验证需求,它通常会更快
def测试(自身、用户、射频):
视图=CustomImageViewSet()
请求=rf.get(“”)
request.user=user#如果需要身份验证
view.request=请求
响应=视图.sepia(请求,123)
assert response.data==BLAH
我注意到您正在使用pytest。我假设你也有pytest django(它确实让一切变得更容易)。我喜欢使用请求工厂,因为如果您有身份验证需求,它通常会更快
def测试(自身、用户、射频):
视图=CustomImageViewSet()
请求=rf.get(“”)
request.user=user#如果需要身份验证
view.request=请求
响应=视图.sepia(请求,123)
assert response.data==BLAH