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

20 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-05-13 02:47 +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 

11 

12@api_view_validate 

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

14@api_view(['POST']) 

15def generate_idaes_python(request) -> Response: 

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

17 

18 # Validate the request data 

19 try: 

20 serializer = GenerateIDAESPythonRequestSerializer(data=request.data) 

21 serializer.is_valid(raise_exception=True) 

22 validated_data = serializer.validated_data 

23 # Use validated data to retrieve objects 

24 flowsheet_id = validated_data.get('flowsheet_id') 

25 except: 

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

27 

28 # The IDAES service now returns the flowsheet JSON; always request JSON. 

29 return generate_IDAES_python_request(flowsheet_id)