@@ -68,7 +68,7 @@ async def _synchronize_receivers(
6868 receivers : list [FormulaReceiver | FormulaReceiver3Phase | Receiver [Sample ]],
6969 ) -> None :
7070 by_ts : dict [
71- datetime , List [FormulaReceiver | FormulaReceiver3Phase | Receiver [Sample ]]
71+ datetime , list [FormulaReceiver | FormulaReceiver3Phase | Receiver [Sample ]]
7272 ] = {}
7373 for recv in receivers :
7474 while True :
@@ -93,10 +93,10 @@ async def _synchronize_receivers(
9393
9494 async def test_grid_power_1 (self , mocker : MockerFixture ) -> None :
9595 """Test the grid power formula with a grid side meter."""
96- mockgrid = await MockMicrogrid . new ( mocker , grid_side_meter = True )
96+ mockgrid = MockMicrogrid ( grid_side_meter = True )
9797 mockgrid .add_batteries (2 )
9898 mockgrid .add_solar_inverters (1 )
99- request_sender , channel_registry = await mockgrid .start ()
99+ request_sender , channel_registry = await mockgrid .start (mocker )
100100 logical_meter = LogicalMeter (
101101 channel_registry ,
102102 request_sender ,
@@ -122,7 +122,7 @@ async def test_grid_power_1(self, mocker: MockerFixture) -> None:
122122 main_meter_data .append (val .value )
123123
124124 val = await grid_power_recv .receive ()
125- assert val is not None
125+ assert val is not None and val . value is not None
126126 results .append (val .value )
127127 await mockgrid .cleanup ()
128128 assert self ._equal_float_lists (results , main_meter_data )
@@ -132,10 +132,10 @@ async def test_grid_power_2(
132132 mocker : MockerFixture ,
133133 ) -> None :
134134 """Test the grid power formula without a grid side meter."""
135- mockgrid = await MockMicrogrid . new ( mocker , grid_side_meter = False )
135+ mockgrid = MockMicrogrid ( grid_side_meter = False )
136136 mockgrid .add_batteries (2 )
137137 mockgrid .add_solar_inverters (1 )
138- request_sender , channel_registry = await mockgrid .start ()
138+ request_sender , channel_registry = await mockgrid .start (mocker )
139139 logical_meter = LogicalMeter (
140140 channel_registry ,
141141 request_sender ,
@@ -181,10 +181,10 @@ async def test_battery_and_pv_power( # pylint: disable=too-many-locals
181181 mocker : MockerFixture ,
182182 ) -> None :
183183 """Test the battery power and pv power formulas."""
184- mockgrid = await MockMicrogrid . new ( mocker )
184+ mockgrid = MockMicrogrid ( grid_side_meter = False )
185185 mockgrid .add_batteries (3 )
186186 mockgrid .add_solar_inverters (2 )
187- request_sender , channel_registry = await mockgrid .start ()
187+ request_sender , channel_registry = await mockgrid .start (mocker )
188188 logical_meter = LogicalMeter (
189189 channel_registry ,
190190 request_sender ,
@@ -256,11 +256,11 @@ async def test_battery_and_pv_power( # pylint: disable=too-many-locals
256256
257257 async def test_soc (self , mocker : MockerFixture ) -> None :
258258 """Test the soc calculation."""
259- mockgrid = await MockMicrogrid . new ( mocker )
259+ mockgrid = MockMicrogrid ( grid_side_meter = False , sample_rate_s = 0.02 )
260260 mockgrid .add_solar_inverters (2 )
261261 mockgrid ._id_increment = 8 # pylint: disable=protected-access
262262 mockgrid .add_batteries (3 )
263- request_sender , channel_registry = await mockgrid .start ()
263+ request_sender , channel_registry = await mockgrid .start (mocker )
264264 logical_meter = LogicalMeter (
265265 channel_registry ,
266266 request_sender ,
@@ -290,14 +290,16 @@ async def test_soc(self, mocker: MockerFixture) -> None:
290290 bat_vals .append (val .value )
291291
292292 assert len (bat_vals ) == 3
293- # After 7 values, the inverter with component_id > 100 stops sending
293+ # After 5 values, the inverter with component_id > 100 stops sending
294294 # data. And the values from the last battery goes out of the calculation.
295295 # So we drop it from out control value as well.
296- if ctr >= 7 :
296+ if ctr >= 5 :
297297 bat_vals = bat_vals [:2 ]
298- assert isclose (
299- (await soc_recv .receive ()).value , sum (bat_vals ) / len (bat_vals )
300- )
298+
299+ soc_sample = await soc_recv .receive ()
300+ assert soc_sample is not None and soc_sample .value is not None
301+
302+ assert isclose (soc_sample .value , sum (bat_vals ) / len (bat_vals ))
301303
302304 await mockgrid .cleanup ()
303305
@@ -306,26 +308,26 @@ async def test_formula_composition( # pylint: disable=too-many-locals
306308 mocker : MockerFixture ,
307309 ) -> None :
308310 """Test the composition of formulas."""
309- mockgrid = await MockMicrogrid . new ( mocker , grid_side_meter = False )
311+ mockgrid = MockMicrogrid ( grid_side_meter = False , sample_rate_s = 0.05 )
310312 mockgrid .add_batteries (3 )
311313 mockgrid .add_solar_inverters (2 )
312- request_sender , channel_registry = await mockgrid .start ()
314+ request_sender , channel_registry = await mockgrid .start (mocker )
313315 logical_meter = LogicalMeter (
314316 channel_registry ,
315317 request_sender ,
316318 microgrid .get ().component_graph ,
317319 )
318320
319- grid_power_recv = await logical_meter .grid_power ()
320- battery_power_recv = await logical_meter .battery_power ()
321- pv_power_recv = await logical_meter .pv_power ()
322321 main_meter_recv = await self ._get_resampled_stream (
323322 logical_meter ,
324323 channel_registry ,
325324 request_sender ,
326325 4 ,
327326 ComponentMetricId .ACTIVE_POWER ,
328327 )
328+ grid_power_recv = await logical_meter .grid_power ()
329+ battery_power_recv = await logical_meter .battery_power ()
330+ pv_power_recv = await logical_meter .pv_power ()
329331
330332 engine = (pv_power_recv .clone () + battery_power_recv .clone ()).build ("inv_power" )
331333 inv_calc_recv = engine .new_receiver ()
@@ -354,9 +356,9 @@ async def test_formula_composition( # pylint: disable=too-many-locals
354356
355357 async def test_formula_composition_missing_pv (self , mocker : MockerFixture ) -> None :
356358 """Test the composition of formulas with missing PV power data."""
357- mockgrid = await MockMicrogrid . new ( mocker , grid_side_meter = False )
359+ mockgrid = MockMicrogrid ( grid_side_meter = False )
358360 mockgrid .add_batteries (3 )
359- request_sender , channel_registry = await mockgrid .start ()
361+ request_sender , channel_registry = await mockgrid .start (mocker )
360362 logical_meter = LogicalMeter (
361363 channel_registry ,
362364 request_sender ,
@@ -385,9 +387,9 @@ async def test_formula_composition_missing_pv(self, mocker: MockerFixture) -> No
385387
386388 async def test_formula_composition_missing_bat (self , mocker : MockerFixture ) -> None :
387389 """Test the composition of formulas with missing battery power data."""
388- mockgrid = await MockMicrogrid . new ( mocker , grid_side_meter = False )
390+ mockgrid = MockMicrogrid ( grid_side_meter = False )
389391 mockgrid .add_solar_inverters (2 )
390- request_sender , channel_registry = await mockgrid .start ()
392+ request_sender , channel_registry = await mockgrid .start (mocker )
391393 logical_meter = LogicalMeter (
392394 channel_registry ,
393395 request_sender ,
@@ -416,10 +418,10 @@ async def test_formula_composition_missing_bat(self, mocker: MockerFixture) -> N
416418
417419 async def test_3_phase_formulas (self , mocker : MockerFixture ) -> None :
418420 """Test 3 phase formulas current formulas and their composition."""
419- mockgrid = await MockMicrogrid . new ( mocker , grid_side_meter = False )
421+ mockgrid = MockMicrogrid ( grid_side_meter = False )
420422 mockgrid .add_batteries (3 )
421423 mockgrid .add_ev_chargers (1 )
422- request_sender , channel_registry = await mockgrid .start ()
424+ request_sender , channel_registry = await mockgrid .start (mocker )
423425 logical_meter = LogicalMeter (
424426 channel_registry ,
425427 request_sender ,
0 commit comments