Coverage for backend/django/core/auxiliary/serializers/CustomPropertyPackageSerializer.py: 92%

44 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-03-26 20:57 +0000

1from ..models.CustomPropertyPackage import CustomPropertyPackage, CustomCompound, CompoundProperty, CustomPropertyPackageProperty, Kappa 

2from ..models.Flowsheet import Flowsheet 

3from rest_framework.serializers import ModelSerializer 

4from ..methods.custom_property_packages.create_property_package import add_property_package 

5from ..methods.custom_property_packages.create_compound import add_compound 

6from core.validation import get_current_flowsheet 

7 

8 

9class CompoundPropertySerializer(ModelSerializer): 

10 

11 class Meta: 

12 model = CompoundProperty 

13 fields = '__all__' 

14 read_only_fields = ['id', 'flowsheet', 'compound', 'compound_property_key'] 

15 

16class CustomCompoundSerializer(ModelSerializer): 

17 properties = CompoundPropertySerializer(many=True, read_only=True) 

18 

19 class Meta: 

20 model = CustomCompound 

21 fields = '__all__' 

22 read_only_fields = ['id', 'flowsheet'] 

23 

24 def create(self, validated_data): 

25 flowsheet = get_current_flowsheet() 

26 if flowsheet is None: 26 ↛ 27line 26 didn't jump to line 27 because the condition on line 26 was never true

27 raise Exception("Flowsheet context is not set") 

28 return add_compound(Flowsheet.objects.get(id=flowsheet["flowsheet"]), validated_data["name"]) 

29 

30 

31class CustomPropertyPackagePropertySerializer(ModelSerializer): 

32 

33 class Meta: 

34 model = CustomPropertyPackageProperty 

35 fields = '__all__' 

36 read_only_fields = ['id', 'flowsheet', 'package', 'package_property_key'] 

37 

38class KappaSerializer(ModelSerializer): 

39 

40 class Meta: 

41 model = Kappa 

42 fields = '__all__' 

43 read_only_fields = ['id', 'flowsheet', 'package', 'compound1', 'compound2'] 

44 

45 

46class CustomPropertyPackageSerializer(ModelSerializer): 

47 kappas = KappaSerializer(many=True, read_only=True) 

48 properties = CustomPropertyPackagePropertySerializer(many=True, read_only=True) 

49 

50 class Meta: 

51 model = CustomPropertyPackage 

52 fields = '__all__' 

53 read_only_fields = ['id', 'flowsheet','compounds'] 

54 

55 

56 def create(self, validated_data): 

57 flowsheet = get_current_flowsheet() 

58 if flowsheet is None: 58 ↛ 59line 58 didn't jump to line 59 because the condition on line 58 was never true

59 raise Exception("Flowsheet context is not set") 

60 return add_property_package(Flowsheet.objects.get(id=flowsheet["flowsheet"]), validated_data["name"])