Skip to content

Commit 4dcac87

Browse files
committed
Define how long PowerDistributor should wait for data as a constant
Also remove the default value from the PowerDistributor constructor, which allows the value to be mocked/overridden before a PowerDistributor instance is created. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 749d2e0 commit 4dcac87

File tree

4 files changed

+8
-1
lines changed

4 files changed

+8
-1
lines changed

benchmarks/power_distribution/power_distributor.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ async def run_test( # pylint: disable=too-many-locals
119119
requests_receiver=power_request_channel.new_receiver(),
120120
results_sender=power_result_channel.new_sender(),
121121
component_pool_status_sender=battery_status_channel.new_sender(),
122+
wait_for_data_sec=2.0,
122123
):
123124
tasks: list[Coroutine[Any, Any, list[Result]]] = []
124125
tasks.append(send_requests(batteries, num_requests))

src/frequenz/sdk/actor/power_distributing/power_distributing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def __init__( # pylint: disable=too-many-arguments
5656
requests_receiver: Receiver[Request],
5757
results_sender: Sender[Result],
5858
component_pool_status_sender: Sender[ComponentPoolStatus],
59-
wait_for_data_sec: float = 2,
59+
wait_for_data_sec: float,
6060
*,
6161
name: str | None = None,
6262
) -> None:

src/frequenz/sdk/microgrid/_power_wrapper.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
_logger = logging.getLogger(__name__)
3232

33+
_POWER_DISTRIBUTING_ACTOR_WAIT_FOR_DATA_SEC = 2.0
34+
3335

3436
class PowerWrapper:
3537
"""Wrapper around the power managing and power distributing actors."""
@@ -66,6 +68,7 @@ def __init__(
6668

6769
self._power_distributing_actor: PowerDistributingActor | None = None
6870
self._power_managing_actor: _power_managing.PowerManagingActor | None = None
71+
self._pd_wait_for_data_sec: float = _POWER_DISTRIBUTING_ACTOR_WAIT_FOR_DATA_SEC
6972

7073
def _start_power_managing_actor(self) -> None:
7174
"""Start the power managing actor if it is not already running."""
@@ -134,6 +137,7 @@ def _start_power_distributing_actor(self) -> None:
134137
requests_receiver=self._power_distribution_requests_channel.new_receiver(),
135138
results_sender=self._power_distribution_results_channel.new_sender(),
136139
component_pool_status_sender=self.status_channel.new_sender(),
140+
wait_for_data_sec=self._pd_wait_for_data_sec,
137141
)
138142
self._power_distributing_actor.start()
139143

tests/actor/power_distributing/test_power_distributing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ async def test_constructor_with_grid_meter(self, mocker: MockerFixture) -> None:
111111
requests_receiver=requests_channel.new_receiver(),
112112
results_sender=results_channel.new_sender(),
113113
component_pool_status_sender=battery_status_channel.new_sender(),
114+
wait_for_data_sec=0.0,
114115
) as distributor:
115116
assert isinstance(distributor._component_manager, BatteryManager)
116117
assert distributor._component_manager._bat_invs_map == {
@@ -141,6 +142,7 @@ async def test_constructor_without_grid_meter(self, mocker: MockerFixture) -> No
141142
requests_receiver=requests_channel.new_receiver(),
142143
results_sender=results_channel.new_sender(),
143144
component_pool_status_sender=battery_status_channel.new_sender(),
145+
wait_for_data_sec=0.0,
144146
) as distributor:
145147
assert isinstance(distributor._component_manager, BatteryManager)
146148
assert distributor._component_manager._bat_invs_map == {

0 commit comments

Comments
 (0)