59 / 89 · 04 API & Contract Testing with AI · Testing Kafka Consumers← prev⊞ allnext →☰ Read as one page
9.5Ordering Tests
def test_event_ordering_within_partition(self, kafka_producer, order_consumer, db):
"""Events for the same key arrive in order within a partition."""
order_id = "ord-sequence"
# Send events in specific order
events = [
{"event_type": "order.created", "sequence": 1, "data": {"order_id": order_id, "status": "pending"}},
{"event_type": "order.paid", "sequence": 2, "data": {"order_id": order_id, "status": "paid"}},
{"event_type": "order.shipped", "sequence": 3, "data": {"order_id": order_id, "status": "shipped"}},
]
for event in events:
kafka_producer.produce(
'order-events',
key=order_id, # Same key = same partition = ordered
value=json.dumps(event).encode('utf-8')
)
kafka_producer.flush()
time.sleep(5)
order_consumer.poll(timeout=1.0)
order = db.get_order(order_id)
assert order.status == "shipped", (
f"Expected final status 'shipped', got '{order.status}'. "
f"Events may have been processed out of order."
)