Skip to content

Commit eaba56c

Browse files
committed
TMP: Add logging for debugging test
1 parent c004086 commit eaba56c

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed

src/frequenz/sdk/microgrid/_power_managing/_matryoshka.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,14 @@ def calculate_target_power(
200200

201201
target_power = None
202202
if proposals is not None:
203+
_logger.warning(
204+
"[MATRYOSHKA] Calculating target power for %s: proposals=%s, system_bounds=%s",
205+
component_ids,
206+
proposals,
207+
system_bounds,
208+
)
203209
target_power = self._calc_target_power(proposals, system_bounds)
210+
_logger.warning("[MATRYOSHKA] Calculated target power: %s", target_power)
204211

205212
if target_power is not None:
206213
self._target_power[component_ids] = target_power

src/frequenz/sdk/microgrid/_power_managing/_power_managing_actor.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ async def _bounds_tracker(
215215
component_ids: frozenset[ComponentId],
216216
bounds_receiver: Receiver[SystemBounds],
217217
) -> None:
218-
"""Track the power bounds of a set of components and update the cache.
218+
"""Track system bounds for the given components and send updated reports.
219219
220220
Args:
221221
component_ids: The component IDs for which this task should track the
@@ -230,6 +230,11 @@ async def _bounds_tracker(
230230
):
231231
continue
232232
last_bounds = bounds
233+
_logger.warning(
234+
"[BOUNDS_TRACKER] New bounds received for %s: %s -> calling _send_updated_target_power(None)",
235+
component_ids,
236+
bounds.inclusion_bounds,
237+
)
233238
self._system_bounds[component_ids] = bounds
234239
await self._send_updated_target_power(component_ids, None)
235240
await self._send_reports(component_ids)
@@ -282,19 +287,45 @@ async def _send_updated_target_power(
282287
component_ids: frozenset[ComponentId],
283288
proposal: Proposal | None,
284289
) -> None:
290+
"""Send updated target power to power distributing actor.
291+
292+
Args:
293+
component_ids: The component IDs to send the power request for.
294+
proposal: The proposal to be sent. If `None`, this method acts as an
295+
announcement that the bounds have been updated, and the target power
296+
should be recalculated.
297+
"""
298+
_logger.warning(
299+
"[SEND_TARGET_POWER] Called with component_ids=%s, proposal=%s",
300+
component_ids,
301+
proposal,
302+
)
285303
target_power = self._algorithm.calculate_target_power(
286304
component_ids,
287305
proposal,
288306
self._system_bounds[component_ids],
289307
)
308+
_logger.warning("[SEND_TARGET_POWER] Calculated target_power=%s", target_power)
290309
if target_power is not None:
310+
_logger.warning(
311+
"[SEND_TARGET_POWER] Sending power distributing request power=%s, "
312+
"component_ids=%s, adjust_power=True",
313+
target_power,
314+
component_ids,
315+
)
291316
await self._power_distributing_requests_sender.send(
292317
_power_distributing.Request(
293318
power=target_power,
294319
component_ids=component_ids,
295320
adjust_power=True,
296321
)
297322
)
323+
_logger.warning(
324+
"[SEND_TARGET_POWER] Power distributing request SENT: power=%s, "
325+
"component_ids=%s, adjust_power=True",
326+
target_power,
327+
component_ids,
328+
)
298329

299330
@override
300331
async def _run(self) -> None:

tests/timeseries/_pv_pool/test_pv_pool_control_methods.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,27 +197,38 @@ async def test_setting_power( # pylint: disable=too-many-statements
197197

198198
# After failing 1 inverter, bounds should go down and power shouldn't be
199199
# distributed to that inverter.
200+
print(f"\n[TEST] ========== FAILING INVERTER {inv_ids[1]} ==========")
200201
await self._fail_pv_inverters([inv_ids[1]], mocks)
202+
print("[TEST] Waiting for bounds to update to -80_000.0...")
201203
report = await self._recv_reports_until(
202204
bounds_rx,
203205
lambda x: x.bounds is not None and x.bounds.lower.as_watts() == -80_000.0,
204206
)
205207
assert report is not None, "No report meeting the condition was received"
208+
print(f"[TEST] Got bounds report: {report}")
206209
self._assert_report(report, power=-4_000.0, lower=-80_000.0, upper=0.0)
207210

208211
set_power.reset_mock()
212+
print(f"\n[TEST] ========== PROPOSING NEW POWER -70_000.0 ==========")
213+
print(f"[TEST] set_power call count before proposal: {set_power.call_count}")
209214
await pv_pool.propose_power(Power.from_watts(-70_000.0))
215+
print("[TEST] Waiting for target power to be -70_000.0...")
210216
report = await self._recv_reports_until(
211217
bounds_rx,
212218
lambda x: x.target_power is not None
213219
and x.target_power.as_watts() == -70_000.0,
214220
)
215221

216222
assert report is not None, "No report meeting the condition was received"
223+
print(f"[TEST] Got target power report: {report}")
217224
self._assert_report(report, power=-70_000.0, lower=-80_000.0, upper=0.0)
225+
print(repr(report))
218226
await asyncio.sleep(0.0)
219227

220228
# Components are set initial power
229+
print(f"\n[TEST] ========== CHECKING SET_POWER CALLS ==========")
230+
print(f"[TEST] set_power.call_count = {set_power.call_count}")
231+
print(f"[TEST] set_power.call_args_list = {set_power.call_args_list}")
221232
assert set_power.call_count == 3
222233
inv_ids = mocks.microgrid.pv_inverter_ids
223234
assert sorted(set_power.call_args_list, key=lambda x: x.args[0]) == [

0 commit comments

Comments
 (0)