Coverage for backend/PinchAnalysis/serializers/PinchInputSerializers.py: 70%

28 statements  

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

1from rest_framework import serializers 

2from PinchAnalysis.models.InputModels import PinchInputs, Segment, PinchUtility 

3from drf_spectacular.utils import extend_schema_field 

4class SegmentSerializer(serializers.ModelSerializer): 

5 zone = serializers.SerializerMethodField() 

6 class Meta: 

7 model = Segment 

8 fields = '__all__' 

9 

10 def create(self, validated_data): 

11 return Segment.create(**validated_data) 

12 

13 def get_zone(self, obj): 

14 zone_object = obj.zone_object 

15 if zone_object is None: 

16 return "Flowsheet" 

17 return f"{zone_object.simulationObject.componentName} - {zone_object.abstractionType}" 

18class PinchUtilitySerializer(serializers.ModelSerializer): 

19 

20 class Meta: 

21 model = PinchUtility 

22 fields = '__all__' 

23 

24 def create(self, validated_data): 

25 return PinchUtility.create(**validated_data) 

26 

27class PinchInputSerializer(serializers.ModelSerializer): 

28 pinch_utilities = PinchUtilitySerializer(many=True, source='PinchUtilities') 

29 

30 class Meta: 

31 model = PinchInputs 

32 fields = '__all__' 

33 

34 def create(self, validated_data): 

35 return PinchInputs.create(**validated_data)