Skip to content

Commit 4b7a153

Browse files
committed
Improve finalization of formula formatter tests
Use the `MockMicrogrid` as a context manager and an async exit stack so all used components get automatically finalized. This commit can be reviewed much more easily hiding differences in spaces (with `diff -w`, or appending `?w=1` to the GitHub URL). Signed-off-by: Leandro Lucarella <[email protected]>
1 parent 0927931 commit 4b7a153

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

tests/timeseries/test_formula_formatter.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
"""Tests for the FormulaFormatter."""
55

66

7+
from contextlib import AsyncExitStack
8+
79
from frequenz.channels import Broadcast
810
from pytest_mock import MockerFixture
911

@@ -112,22 +114,24 @@ def test_functions(self) -> None:
112114

113115
async def test_higher_order_formula(self, mocker: MockerFixture) -> None:
114116
"""Test that the formula is formatted correctly for a higher-order formula."""
115-
mockgrid = MockMicrogrid(grid_meter=False)
117+
mockgrid = MockMicrogrid(grid_meter=False, mocker=mocker)
116118
mockgrid.add_batteries(3)
117119
mockgrid.add_ev_chargers(1)
118120
mockgrid.add_solar_inverters(2)
119-
await mockgrid.start(mocker)
120121

121-
logical_meter = microgrid.logical_meter()
122-
grid = microgrid.grid()
123-
assert str(grid.power) == "#36 + #7 + #47 + #17 + #57 + #27"
122+
async with mockgrid, AsyncExitStack() as stack:
123+
logical_meter = microgrid.logical_meter()
124+
stack.push_async_callback(logical_meter.stop)
125+
126+
grid = microgrid.grid()
127+
stack.push_async_callback(grid.stop)
124128

125-
composed_formula = (grid.power - logical_meter.pv_power).build("grid_minus_pv")
126-
assert (
127-
str(composed_formula)
128-
== "[grid-power](#36 + #7 + #47 + #17 + #57 + #27) - [pv-power](#57 + #47)"
129-
)
129+
assert str(grid.power) == "#36 + #7 + #47 + #17 + #57 + #27"
130130

131-
await mockgrid.cleanup()
132-
await logical_meter.stop()
133-
await grid.stop()
131+
composed_formula = (grid.power - logical_meter.pv_power).build(
132+
"grid_minus_pv"
133+
)
134+
assert (
135+
str(composed_formula)
136+
== "[grid-power](#36 + #7 + #47 + #17 + #57 + #27) - [pv-power](#57 + #47)"
137+
)

0 commit comments

Comments
 (0)