Modern QA2026Ordering Tests — tiles
Log inJoin
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."
        )