Skip to content

Commit 810ef62

Browse files
Fix tests after previous commit
And fix graph in test_batter_pool_power_two_batteries_per_inverter, Previously meters were connected to the grid and had no successors, inverters were connected to grid and had no meter. Now meters are connected to the inverters. Signed-off-by: Elzbieta Kotulska <[email protected]>
1 parent 1a8a336 commit 810ef62

File tree

2 files changed

+73
-30
lines changed

2 files changed

+73
-30
lines changed

tests/timeseries/_battery_pool/test_battery_pool.py

Lines changed: 72 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# pylint: disable=too-many-lines
77

88

9+
from contextlib import AsyncExitStack
910
import asyncio
1011
import dataclasses
1112
import logging
@@ -490,8 +491,24 @@ async def test_battery_pool_power(mocker: MockerFixture) -> None:
490491
"""Test `BatteryPool.power` method."""
491492
mockgrid = MockMicrogrid(grid_meter=True, mocker=mocker)
492493
mockgrid.add_batteries(2)
493-
await mockgrid.start(mocker)
494-
await _test_battery_pool_power(mockgrid)
494+
495+
async with mockgrid, AsyncExitStack() as stack:
496+
battery_pool = microgrid.new_battery_pool(priority=5)
497+
stack.push_async_callback(battery_pool.stop)
498+
power_receiver = battery_pool.power.new_receiver()
499+
500+
# send meter power [grid_meter, battery1_meter, battery2_meter]
501+
await mockgrid.mock_resampler.send_meter_power([100.0, 2.0, 3.0])
502+
await mockgrid.mock_resampler.send_bat_inverter_power([20.0, 30.0])
503+
assert (await power_receiver.receive()).value == Power.from_watts(5.0)
504+
505+
await mockgrid.mock_resampler.send_meter_power([100.0, -2.0, -5.0])
506+
await mockgrid.mock_resampler.send_bat_inverter_power([-20.0, -50.0])
507+
assert (await power_receiver.receive()).value == Power.from_watts(-7.0)
508+
509+
await mockgrid.mock_resampler.send_meter_power([100.0, 2.0, -5.0])
510+
await mockgrid.mock_resampler.send_bat_inverter_power([20.0, -50.0])
511+
assert (await power_receiver.receive()).value == Power.from_watts(-3.0)
495512

496513

497514
async def test_battery_pool_power_two_inverters_per_battery(
@@ -501,10 +518,29 @@ async def test_battery_pool_power_two_inverters_per_battery(
501518
gen = GraphGenerator()
502519
bat = gen.component(ComponentCategory.BATTERY)
503520
mockgrid = MockMicrogrid(
504-
graph=gen.to_graph((ComponentCategory.METER, gen.battery_with_inverter(bat, 2)))
521+
graph=gen.to_graph(
522+
(ComponentCategory.METER, gen.battery_with_inverter(bat, 2))
523+
),
524+
mocker=mocker,
505525
)
506-
await mockgrid.start(mocker)
507-
await _test_battery_pool_power(mockgrid)
526+
async with mockgrid, AsyncExitStack() as stack:
527+
battery_pool = microgrid.new_battery_pool(priority=5)
528+
stack.push_async_callback(battery_pool.stop)
529+
power_receiver = battery_pool.power.new_receiver()
530+
531+
# send meter power [grid_meter, battery1_meter]
532+
# Fallback formula - use only meter power, inverter and batteries are not used.
533+
await mockgrid.mock_resampler.send_meter_power([100.0, 3.0])
534+
await mockgrid.mock_resampler.send_bat_inverter_power([20.0, 30.0])
535+
assert (await power_receiver.receive()).value == Power.from_watts(3.0)
536+
537+
await mockgrid.mock_resampler.send_meter_power([100.0, -5.0])
538+
await mockgrid.mock_resampler.send_bat_inverter_power([-20.0, -50.0])
539+
assert (await power_receiver.receive()).value == Power.from_watts(-5.0)
540+
541+
await mockgrid.mock_resampler.send_meter_power([100.0, -5.0])
542+
await mockgrid.mock_resampler.send_bat_inverter_power([20.0, -50.0])
543+
assert (await power_receiver.receive()).value == Power.from_watts(-5.0)
508544

509545

510546
async def test_batter_pool_power_two_batteries_per_inverter(
@@ -515,21 +551,43 @@ async def test_batter_pool_power_two_batteries_per_inverter(
515551
mockgrid = MockMicrogrid(
516552
graph=gen.to_graph(
517553
[
518-
ComponentCategory.METER,
519554
(
520-
ComponentCategory.INVERTER,
521-
[ComponentCategory.BATTERY, ComponentCategory.BATTERY],
555+
ComponentCategory.METER,
556+
(
557+
ComponentCategory.INVERTER,
558+
[ComponentCategory.BATTERY, ComponentCategory.BATTERY],
559+
),
522560
),
523-
ComponentCategory.METER,
524561
(
525-
ComponentCategory.INVERTER,
526-
[ComponentCategory.BATTERY, ComponentCategory.BATTERY],
562+
ComponentCategory.METER,
563+
(
564+
ComponentCategory.INVERTER,
565+
[ComponentCategory.BATTERY, ComponentCategory.BATTERY],
566+
),
527567
),
528568
]
529-
)
569+
),
570+
mocker=mocker,
530571
)
531-
await mockgrid.start(mocker)
532-
await _test_battery_pool_power(mockgrid)
572+
573+
async with mockgrid, AsyncExitStack() as stack:
574+
battery_pool = microgrid.new_battery_pool(priority=5)
575+
stack.push_async_callback(battery_pool.stop)
576+
power_receiver = battery_pool.power.new_receiver()
577+
578+
# send meter power [battery1_meter, battery2_meter]
579+
# Fallback formula - use only meter power, inverter and batteries are not used.
580+
await mockgrid.mock_resampler.send_meter_power([100.0, 3.0])
581+
await mockgrid.mock_resampler.send_bat_inverter_power([20.0, 30.0])
582+
assert (await power_receiver.receive()).value == Power.from_watts(103.0)
583+
584+
await mockgrid.mock_resampler.send_meter_power([100.0, -5.0])
585+
await mockgrid.mock_resampler.send_bat_inverter_power([-20.0, -50.0])
586+
assert (await power_receiver.receive()).value == Power.from_watts(95.0)
587+
588+
await mockgrid.mock_resampler.send_meter_power([3.0, -5.0])
589+
await mockgrid.mock_resampler.send_bat_inverter_power([20.0, -50.0])
590+
assert (await power_receiver.receive()).value == Power.from_watts(-2.0)
533591

534592

535593
async def test_batter_pool_power_no_batteries(mocker: MockerFixture) -> None:
@@ -590,21 +648,6 @@ async def test_battery_pool_power_incomplete_bat_request(mocker: MockerFixture)
590648
assert (await power_receiver.receive()).value == Power.from_watts(2.0)
591649

592650

593-
async def _test_battery_pool_power(mockgrid: MockMicrogrid) -> None:
594-
async with mockgrid:
595-
battery_pool = microgrid.new_battery_pool(priority=5)
596-
power_receiver = battery_pool.power.new_receiver()
597-
598-
await mockgrid.mock_resampler.send_bat_inverter_power([2.0, 3.0])
599-
assert (await power_receiver.receive()).value == Power.from_watts(5.0)
600-
601-
await mockgrid.mock_resampler.send_bat_inverter_power([-2.0, -5.0])
602-
assert (await power_receiver.receive()).value == Power.from_watts(-7.0)
603-
604-
await mockgrid.mock_resampler.send_bat_inverter_power([2.0, -5.0])
605-
assert (await power_receiver.receive()).value == Power.from_watts(-3.0)
606-
607-
608651
async def run_capacity_test( # pylint: disable=too-many-locals
609652
fake_time: time_machine.Coordinates, setup_args: SetupArgs
610653
) -> None:

tests/timeseries/_formula_engine/test_formula_composition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ async def test_formula_composition_missing_pv(self, mocker: MockerFixture) -> No
130130
inv_calc_recv = engine.new_receiver()
131131

132132
for _ in range(10):
133-
await mockgrid.mock_resampler.send_bat_inverter_power(
133+
await mockgrid.mock_resampler.send_meter_power(
134134
[10.0 + count, 12.0 + count, 14.0 + count]
135135
)
136136
await mockgrid.mock_resampler.send_non_existing_component_value()

0 commit comments

Comments
 (0)