|
4 | 4 | """Tests for the FormulaFormatter.""" |
5 | 5 |
|
6 | 6 |
|
| 7 | +from contextlib import AsyncExitStack |
| 8 | + |
7 | 9 | from frequenz.channels import Broadcast |
8 | 10 | from pytest_mock import MockerFixture |
9 | 11 |
|
@@ -112,22 +114,24 @@ def test_functions(self) -> None: |
112 | 114 |
|
113 | 115 | async def test_higher_order_formula(self, mocker: MockerFixture) -> None: |
114 | 116 | """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) |
116 | 118 | mockgrid.add_batteries(3) |
117 | 119 | mockgrid.add_ev_chargers(1) |
118 | 120 | mockgrid.add_solar_inverters(2) |
119 | | - await mockgrid.start(mocker) |
120 | 121 |
|
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) |
124 | 128 |
|
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" |
130 | 130 |
|
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