Coverage for backend/django/core/auxiliary/serializers/TaskSerializer.py: 100%

22 statements  

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

1from drf_spectacular.helpers import lazy_serializer 

2from drf_spectacular.utils import extend_schema_field 

3from rest_framework import serializers 

4from core.auxiliary.models.Task import Task, TaskMeta 

5 

6 

7class TaskMetaSerializer(serializers.ModelSerializer): 

8 class Meta: 

9 model = TaskMeta 

10 exclude = ['id'] 

11 read_only_fields = ['scheduled_tasks', 'failed_tasks', 'successful_tasks'] 

12 

13class TaskSerializer(serializers.ModelSerializer): 

14 error = serializers.SerializerMethodField() 

15 metadata = TaskMetaSerializer(allow_null=True) 

16 

17 def get_error(self, obj: Task): 

18 if not obj.error or not isinstance(obj.error, dict): 

19 return obj.error 

20 

21 sanitized_error = dict(obj.error) 

22 sanitized_error.pop("traceback", None) 

23 return sanitized_error 

24 

25 class Meta: 

26 model = Task 

27 exclude = ['creator', 'flowsheet'] 

28 read_only_fields = [ 

29 'id', 

30 'status', 

31 'start_time', 

32 'completed_time', 

33 'error', 

34 'debug', 

35 'log', 

36 'parent', 

37 'metadata', 

38 ]