Skip to content

Commit 68ce401

Browse files
committed
isolated test for a handler [test_handler_in_isolation]
1 parent 1cad6e8 commit 68ce401

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

tests/unit/test_handlers.py

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

0 commit comments

Comments
 (0)