Skip to content

Commit 3dd9af2

Browse files
committed
Fix broken MergeByTypeTarge.identity function
Pending: I still need to investigate why the existing tests didn't catch this. Signed-off-by: Mathias L. Baumann <[email protected]>
1 parent 27252a8 commit 3dd9af2

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/frequenz/dispatch/_merge_strategies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ class MergeByTypeTarget(MergeByType):
6464
@override
6565
def identity(self, dispatch: Dispatch) -> int:
6666
"""Identity function for the merge criteria."""
67-
return hash((dispatch.type, dispatch.target))
67+
return hash((dispatch.type, tuple(dispatch.target)))

tests/test_frequenz_dispatch.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
Deleted,
2525
Dispatch,
2626
DispatchEvent,
27+
MergeByIdentity,
2728
MergeByType,
2829
MergeByTypeTarget,
2930
MergeStrategy,
@@ -678,7 +679,7 @@ async def test_multiple_dispatches_sequential_intervals_merge(
678679
async def test_at_least_one_running_filter(
679680
fake_time: time_machine.Coordinates,
680681
generator: DispatchGenerator,
681-
merge_strategy: MergeStrategy,
682+
merge_strategy: MergeByIdentity,
682683
) -> None:
683684
"""Test scenarios directly tied to the _at_least_one_running logic."""
684685
microgrid_id = randint(1, 100)
@@ -701,6 +702,8 @@ async def test_at_least_one_running_filter(
701702
recurrence=RecurrenceRule(),
702703
type="TEST_TYPE",
703704
)
705+
_ = merge_strategy.identity(Dispatch(dispatch))
706+
704707
lifecycle = service.new_lifecycle_events_receiver("TEST_TYPE")
705708
await client.create(**to_create_params(microgrid_id, dispatch))
706709
await lifecycle.receive()

0 commit comments

Comments
 (0)