Coverage for backend/django/PinchAnalysis/views/HenNodeViewSet.py: 85%

27 statements  

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

1from core.serializer_base import StateOwnedModelSerializer 

2from PinchAnalysis.models.HenNode import HenNode 

3from django.db.models import Q 

4from django.db import transaction 

5from rest_framework import serializers 

6from PinchAnalysis.views.henNodeHelpers import group_stream_by_unitop_type, is_hot, is_cold, set_hennode_connections 

7from core.viewset import ModelViewSet 

8from rest_framework.decorators import action 

9from rest_framework.response import Response 

10from PinchAnalysis.models.InputModels import StreamDataEntry 

11from drf_spectacular.utils import extend_schema 

12import traceback 

13 

14 

15class BulkCreateHenNodeInputSerializer(serializers.Serializer): 

16 stream_ids = serializers.ListField( 

17 child=serializers.IntegerField(), 

18 required=False 

19 ) 

20 

21class HenNodeSerializer(StateOwnedModelSerializer): 

22 class Meta: 

23 model = HenNode 

24 fields = "__all__" 

25 

26 

27class HenNodeViewSet(ModelViewSet): 

28 serializer_class = HenNodeSerializer 

29 

30 def get_queryset(self): 

31 return HenNode.objects.all() 

32 

33 def error_response(self, e): 

34 tb_info = traceback.format_exc() 

35 error_message = str(e) 

36 response_data = { 

37 'status': 'error', 

38 'message': error_message, 

39 'traceback': tb_info 

40 } 

41 return Response(response_data, status=400)