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

44 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-07-22 05:22 +0000

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

2from ..models.FlowsheetState import FlowsheetState 

3from core.serializer_base import StateOwnedModelSerializer 

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(StateOwnedModelSerializer): 

10 

11 class Meta: 

12 model = CompoundProperty 

13 fields = '__all__' 

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

15 

16class CustomCompoundSerializer(StateOwnedModelSerializer): 

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( 

29 FlowsheetState.objects.get(id=flowsheet["flowsheet_state"]), 

30 validated_data["name"], 

31 ) 

32 

33 

34class CustomPropertyPackagePropertySerializer(StateOwnedModelSerializer): 

35 

36 class Meta: 

37 model = CustomPropertyPackageProperty 

38 fields = '__all__' 

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

40 

41class KappaSerializer(StateOwnedModelSerializer): 

42 

43 class Meta: 

44 model = Kappa 

45 fields = '__all__' 

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

47 

48 

49class CustomPropertyPackageSerializer(StateOwnedModelSerializer): 

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

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

52 

53 class Meta: 

54 model = CustomPropertyPackage 

55 fields = '__all__' 

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

57 

58 

59 def create(self, validated_data): 

60 flowsheet = get_current_flowsheet() 

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

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

63 return add_property_package( 

64 FlowsheetState.objects.get(id=flowsheet["flowsheet_state"]), 

65 validated_data["name"], 

66 )