Coverage for backend/PinchAnalysis/views/PinchOptionsViewSet.py: 50%

22 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-11-06 23:27 +0000

1from core.viewset import ModelViewSet 

2from PinchAnalysis.models.OptionModels import MainOptions 

3from PinchAnalysis.serializers.PinchOptionsSerializers import MainOptionsSerializer 

4from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes 

5from rest_framework.response import Response 

6import traceback 

7 

8class PinchOptionsViewSet(ModelViewSet): 

9 serializer_class = MainOptionsSerializer 

10 

11 def get_queryset(self): 

12 queryset = MainOptions.objects.all() 

13 projectId = self.request.query_params.get("projectOwner") 

14 if projectId is not None: 

15 queryset = queryset.filter(project_owner_id=projectId) 

16 return queryset 

17 

18 @extend_schema( 

19 parameters=[ 

20 OpenApiParameter(name="projectOwner", required=True, type=OpenApiTypes.INT), 

21 ] 

22 ) 

23 

24 def list(self, request): 

25 return super().list(request) 

26 

27 def error_response(self, e): 

28 tb_info = traceback.format_exc() 

29 error_message = str(e) 

30 response_data = {'status': 'error', 'message': error_message, 'traceback': tb_info} 

31 return Response(response_data, status=400)