Coverage for backend/django/diagnostics/serializers.py: 100%

26 statements  

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

1"""Serializers for diagnostics API views.""" 

2 

3from rest_framework import serializers 

4 

5 

6class FindingFixActionSerializer(serializers.Serializer): 

7 """Structured fix action payload attached to a finding.""" 

8 

9 kind = serializers.ChoiceField(choices=["property_value", "scenario_patch"]) 

10 propertyId = serializers.IntegerField(required=False) 

11 suggestedValue = serializers.FloatField(required=False) 

12 disable_initialization = serializers.BooleanField(required=False) 

13 

14 

15class FindingSerializer(serializers.Serializer): 

16 """Serializer for a single finding.""" 

17 

18 id = serializers.CharField(required=False) 

19 severity = serializers.ChoiceField( 

20 choices=["error", "warning", "info", "suggestion"] 

21 ) 

22 title = serializers.CharField() 

23 description = serializers.CharField() 

24 ruleReference = serializers.CharField(required=False) 

25 componentName = serializers.CharField(required=False, allow_null=True) 

26 componentId = serializers.IntegerField(required=False) 

27 propertyKey = serializers.CharField(required=False, allow_null=True) 

28 propertyId = serializers.IntegerField(required=False) 

29 suggestedFix = serializers.CharField(required=False) 

30 suggestedValue = serializers.FloatField(required=False) 

31 fixAction = FindingFixActionSerializer(required=False, allow_null=True) 

32 ignored = serializers.BooleanField(required=False) 

33 

34 

35class PropertyRuleFindingsSerializer(serializers.Serializer): 

36 """Response serializer for property rule findings.""" 

37 

38 object_id = serializers.IntegerField() 

39 findings = FindingSerializer(many=True) 

40 

41 

42class FlowsheetRuleFindingsSerializer(serializers.Serializer): 

43 """Response serializer for flowsheet-wide property rule findings.""" 

44 

45 flowsheet_id = serializers.IntegerField() 

46 findings = FindingSerializer(many=True)