@@ -61,80 +61,83 @@ def next_msg(value: float) -> ComponentData:
6161 server = mock_api .MockGrpcServer (servicer , port = 57899 )
6262 await server .start ()
6363
64- servicer .add_component (1 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_GRID )
65- servicer .add_component (
66- 3 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_JUNCTION
67- )
68- servicer .add_component (4 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_METER )
69- servicer .add_component (7 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_METER )
70- servicer .add_component (
71- 8 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_INVERTER
72- )
73- servicer .add_component (
74- 9 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_BATTERY
75- )
76-
77- servicer .add_connection (1 , 3 )
78- servicer .add_connection (3 , 4 )
79- servicer .add_connection (3 , 7 )
80- servicer .add_connection (7 , 8 )
81- servicer .add_connection (8 , 9 )
82-
83- await microgrid_api .initialize ("[::1]" , 57899 )
84-
85- channel_registry = ChannelRegistry (name = "Microgrid Channel Registry" )
86-
87- data_source_request_channel = Broadcast [ComponentMetricRequest ](
88- "Data Source Request Channel"
89- )
90- data_source_request_sender = data_source_request_channel .get_sender ()
91- data_source_request_receiver = data_source_request_channel .get_receiver ()
92-
93- resampling_actor_request_channel = Broadcast [ComponentMetricRequest ](
94- "Resampling Actor Request Channel"
95- )
96- resampling_actor_request_sender = resampling_actor_request_channel .get_sender ()
97- resampling_actor_request_receiver = resampling_actor_request_channel .get_receiver ()
98-
99- DataSourcingActor (
100- request_receiver = data_source_request_receiver , registry = channel_registry
101- )
102-
103- ComponentMetricsResamplingActor (
104- channel_registry = channel_registry ,
105- subscription_sender = data_source_request_sender ,
106- subscription_receiver = resampling_actor_request_receiver ,
107- resampling_period_s = 0.1 ,
108- )
109-
110- subscription_request = ComponentMetricRequest (
111- namespace = "Resampling" ,
112- component_id = 9 ,
113- metric_id = ComponentMetricId .SOC ,
114- start_time = None ,
115- )
116-
117- await resampling_actor_request_sender .send (subscription_request )
118-
119- index = 0
120- expected_sample_values = [
121- 3.0 ,
122- 4.5 ,
123- 6.0 ,
124- 7.5 ,
125- 9.0 ,
126- None ,
127- None ,
128- None ,
129- ]
130-
131- async for sample in channel_registry .get_receiver (
132- subscription_request .get_channel_name ()
133- ):
134- assert sample .value == expected_sample_values [index ]
135- index += 1
136- if index >= len (expected_sample_values ):
137- break
138-
139- await server .stop (0.1 )
140- microgrid_api ._MICROGRID_API = None # pylint: disable=protected-access
64+ try :
65+
66+ servicer .add_component (1 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_GRID )
67+ servicer .add_component (
68+ 3 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_JUNCTION
69+ )
70+ servicer .add_component (4 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_METER )
71+ servicer .add_component (7 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_METER )
72+ servicer .add_component (
73+ 8 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_INVERTER
74+ )
75+ servicer .add_component (
76+ 9 , microgrid_pb2 .ComponentCategory .COMPONENT_CATEGORY_BATTERY
77+ )
78+
79+ servicer .add_connection (1 , 3 )
80+ servicer .add_connection (3 , 4 )
81+ servicer .add_connection (3 , 7 )
82+ servicer .add_connection (7 , 8 )
83+ servicer .add_connection (8 , 9 )
84+
85+ await microgrid_api .initialize ("[::1]" , 57899 )
86+
87+ channel_registry = ChannelRegistry (name = "Microgrid Channel Registry" )
88+
89+ data_source_request_channel = Broadcast [ComponentMetricRequest ](
90+ "Data Source Request Channel"
91+ )
92+ data_source_request_sender = data_source_request_channel .get_sender ()
93+ data_source_request_receiver = data_source_request_channel .get_receiver ()
94+
95+ resampling_actor_request_channel = Broadcast [ComponentMetricRequest ](
96+ "Resampling Actor Request Channel"
97+ )
98+ resampling_actor_request_sender = resampling_actor_request_channel .get_sender ()
99+ resampling_actor_request_receiver = resampling_actor_request_channel .get_receiver ()
100+
101+ DataSourcingActor (
102+ request_receiver = data_source_request_receiver , registry = channel_registry
103+ )
104+
105+ ComponentMetricsResamplingActor (
106+ channel_registry = channel_registry ,
107+ subscription_sender = data_source_request_sender ,
108+ subscription_receiver = resampling_actor_request_receiver ,
109+ resampling_period_s = 0.1 ,
110+ )
111+
112+ subscription_request = ComponentMetricRequest (
113+ namespace = "Resampling" ,
114+ component_id = 9 ,
115+ metric_id = ComponentMetricId .SOC ,
116+ start_time = None ,
117+ )
118+
119+ await resampling_actor_request_sender .send (subscription_request )
120+
121+ index = 0
122+ expected_sample_values = [
123+ 3.0 ,
124+ 4.5 ,
125+ 6.0 ,
126+ 7.5 ,
127+ 9.0 ,
128+ None ,
129+ None ,
130+ None ,
131+ ]
132+
133+ async for sample in channel_registry .get_receiver (
134+ subscription_request .get_channel_name ()
135+ ):
136+ assert sample .value == expected_sample_values [index ]
137+ index += 1
138+ if index >= len (expected_sample_values ):
139+ break
140+
141+ finally :
142+ await server .stop (0.1 )
143+ microgrid_api ._MICROGRID_API = None # pylint: disable=protected-access
0 commit comments