Ejemplo n.º 1
0
    def test_send_broker_unaware_request(self):
        'Tests that call works when at least one of the host is available'

        mocked_conns = {
            ('kafka01', 9092): mock.MagicMock(),
            ('kafka02', 9092): mock.MagicMock(),
            ('kafka03', 9092): mock.MagicMock()
        }
        # inject KafkaConnection side effects
        fut = asyncio.Future(loop=self.loop)
        fut.set_exception(RuntimeError("kafka01 went away (unittest)"))
        mocked_conns[('kafka01', 9092)].send.return_value = fut

        fut2 = asyncio.Future(loop=self.loop)
        fut2.set_result(b'valid response')
        mocked_conns[('kafka02', 9092)].send.return_value = fut2

        fut3 = asyncio.Future(loop=self.loop)
        fut3.set_exception(RuntimeError("kafka03 went away (unittest)"))
        mocked_conns[('kafka03', 9092)].send.return_value = fut3

        client = AIOKafkaClient('kafka01:9092,kafka02:9092', loop=self.loop)
        client._conns = mocked_conns

        resp = self.loop.run_until_complete(
            client._send_broker_unaware_request(payloads=[b'fake request'],
                                                encoder_fn=mock.MagicMock(),
                                                decoder_fn=lambda x: x))

        self.assertEqual(b'valid response', resp)
Ejemplo n.º 2
0
    def test_send_broker_unaware_request(self):
        "Tests that call works when at least one of the host is available"

        mocked_conns = {
            ("kafka01", 9092): mock.MagicMock(),
            ("kafka02", 9092): mock.MagicMock(),
            ("kafka03", 9092): mock.MagicMock(),
        }
        # inject KafkaConnection side effects
        fut = asyncio.Future(loop=self.loop)
        fut.set_exception(RuntimeError("kafka01 went away (unittest)"))
        mocked_conns[("kafka01", 9092)].send.return_value = fut

        fut2 = asyncio.Future(loop=self.loop)
        fut2.set_result(b"valid response")
        mocked_conns[("kafka02", 9092)].send.return_value = fut2

        fut3 = asyncio.Future(loop=self.loop)
        fut3.set_exception(RuntimeError("kafka03 went away (unittest)"))
        mocked_conns[("kafka03", 9092)].send.return_value = fut3

        client = AIOKafkaClient("kafka01:9092,kafka02:9092", loop=self.loop)
        client._conns = mocked_conns

        resp = self.loop.run_until_complete(
            client._send_broker_unaware_request(
                payloads=[b"fake request"], encoder_fn=mock.MagicMock(), decoder_fn=lambda x: x
            )
        )

        self.assertEqual(b"valid response", resp)