Skip to content

Commit 1f21ddf

Browse files
committed
isolated test for a handler [test_handler_in_isolation]
1 parent 50b5e6b commit 1f21ddf

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

tests/unit/test_handlers.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,28 @@ def __init__(self):
137137
def collect_new_events(self):
138138
self.events_published += super().collect_new_events()
139139
return []
140+
141+
142+
def test_reallocates_if_necessary_isolated():
143+
uow = FakeUnitOfWorkWithFakeMessageBus()
144+
145+
# test setup as before
146+
event_history = [
147+
events.BatchCreated("batch1", "INDIFFERENT-TABLE", 50, None),
148+
events.BatchCreated("batch2", "INDIFFERENT-TABLE", 50, date.today()),
149+
events.AllocationRequired("order1", "INDIFFERENT-TABLE", 20),
150+
events.AllocationRequired("order2", "INDIFFERENT-TABLE", 20),
151+
]
152+
for e in event_history:
153+
messagebus.handle(e, uow)
154+
[batch1, batch2] = uow.products.get(sku="INDIFFERENT-TABLE").batches
155+
assert batch1.available_quantity == 10
156+
assert batch2.available_quantity == 50
157+
158+
messagebus.handle(events.BatchQuantityChanged("batch1", 25), uow)
159+
160+
# assert on new events emitted rather than downstream side-effects
161+
[reallocation_event] = uow.events_published
162+
assert isinstance(reallocation_event, events.AllocationRequired)
163+
assert reallocation_event.orderid in {"order1", "order2"}
164+
assert reallocation_event.sku == "INDIFFERENT-TABLE"

0 commit comments

Comments
 (0)