Ejemplo n.º 1
0
    async def test_sender__produce_request_not_ok(self):
        sender = await self._setup_sender()
        tp = TopicPartition("my_topic", 0)
        batch_mock = mock.Mock()
        send_handler = SendProduceReqHandler(
            sender, {tp: batch_mock})

        def create_response(error_type):
            cls = ProduceResponse[4]
            resp = cls(
                throttle_time_ms=300,
                topics=[
                    ("my_topic", [
                        (0, error_type.errno, 0, -1)
                    ])
                ]
            )
            return resp

        # Special case for DuplicateSequenceNumber
        resp = create_response(DuplicateSequenceNumber)
        send_handler.handle_response(resp)
        batch_mock.done.assert_called_with(0, -1)
        batch_mock.failure.assert_not_called()
        self.assertEqual(send_handler._to_reenqueue, [])

        batch_mock.reset_mock()

        # Special case for InvalidProducerEpoch
        resp = create_response(InvalidProducerEpoch)
        send_handler.handle_response(resp)
        batch_mock.done.assert_not_called()
        self.assertNotEqual(batch_mock.failure.call_count, 0)
        self.assertEqual(send_handler._to_reenqueue, [])
Ejemplo n.º 2
0
    async def test_sender__produce_request_not_ok(self):
        sender = await self._setup_sender()
        tp = TopicPartition("my_topic", 0)
        batch_mock = mock.Mock()
        send_handler = SendProduceReqHandler(sender, {tp: batch_mock})

        def create_response(error_type):
            cls = ProduceResponse[4]
            resp = cls(throttle_time_ms=300,
                       topics=[("my_topic", [(0, error_type.errno, 0, -1)])])
            return resp

        # Special case for DuplicateSequenceNumber
        resp = create_response(DuplicateSequenceNumber)
        send_handler.handle_response(resp)
        batch_mock.done.assert_called_with(0, -1, None)
        batch_mock.failure.assert_not_called()
        self.assertEqual(send_handler._to_reenqueue, [])

        batch_mock.reset_mock()

        # Special case for InvalidProducerEpoch
        resp = create_response(InvalidProducerEpoch)
        send_handler.handle_response(resp)
        batch_mock.done.assert_not_called()
        self.assertNotEqual(batch_mock.failure.call_count, 0)
        self.assertEqual(send_handler._to_reenqueue, [])
Ejemplo n.º 3
0
    async def test_sender__produce_request_ok(self):
        sender = await self._setup_sender()
        tp = TopicPartition("my_topic", 0)
        batch_mock = mock.Mock()
        send_handler = SendProduceReqHandler(sender, {tp: batch_mock})

        def create_response(error_type):
            cls = ProduceResponse[4]
            resp = cls(throttle_time_ms=300,
                       topics=[("my_topic", [(0, error_type.errno, 100, 200)])
                               ])
            return resp

        # Special case for DuplicateSequenceNumber
        resp = create_response(NoError)
        send_handler.handle_response(resp)
        batch_mock.done.assert_called_with(100, 200, None)
        self.assertEqual(send_handler._to_reenqueue, [])
Ejemplo n.º 4
0
    async def test_sender__produce_request_ok(self):
        sender = await self._setup_sender()
        tp = TopicPartition("my_topic", 0)
        batch_mock = mock.Mock()
        send_handler = SendProduceReqHandler(
            sender, {tp: batch_mock})

        def create_response(error_type):
            cls = ProduceResponse[4]
            resp = cls(
                throttle_time_ms=300,
                topics=[
                    ("my_topic", [
                        (0, error_type.errno, 100, 200)
                    ])
                ]
            )
            return resp

        # Special case for DuplicateSequenceNumber
        resp = create_response(NoError)
        send_handler.handle_response(resp)
        batch_mock.done.assert_called_with(100, 200)
        self.assertEqual(send_handler._to_reenqueue, [])