Coverage for backend/core/auxiliary/views/GenerateIDAESPython.py: 59%

22 statements  

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

1from drf_spectacular.utils import extend_schema 

2from rest_framework.response import Response 

3from rest_framework.decorators import api_view 

4from rest_framework import serializers 

5from idaes_factory.endpoints import generate_IDAES_python_request 

6from core.validation import api_view_validate 

7 

8class GenerateIDAESPythonRequestSerializer(serializers.Serializer): 

9 flowsheet_id = serializers.IntegerField(required=True) 

10 return_json = serializers.BooleanField(required=False, default=False) 

11 

12 

13@api_view_validate 

14@extend_schema(request=GenerateIDAESPythonRequestSerializer, responses=None) 

15@api_view(['POST']) 

16def generate_idaes_python(request) -> Response: 

17 """Generates IDAES Python code for the given flowsheet""" 

18 

19 # Validate the request data 

20 try: 

21 serializer = GenerateIDAESPythonRequestSerializer(data=request.data) 

22 serializer.is_valid(raise_exception=True) 

23 validated_data = serializer.validated_data 

24 # Use validated data to retrieve objects 

25 flowsheet_id = validated_data.get('flowsheet_id') 

26 return_json = validated_data.get('return_json', False) 

27 except: 

28 return Response("Invalid request data", status=400) 

29 

30 return generate_IDAES_python_request(flowsheet_id, return_json=return_json)