예제 #1
0
    def test_connection_close(self):
        client = yield from connect(AMQP_URL, loop=self.loop)  # type: Connection

        routing_key = self.get_random_name()

        channel = yield from client.channel()    # type: Channel
        exchange = yield from channel.declare_exchange('direct', auto_delete=True)

        try:
            with self.assertRaises(aio_pika.exceptions.ChannelClosed):
                msg = Message(bytes(shortuuid.uuid(), 'utf-8'))
                msg.delivery_mode = 8

                yield from exchange.publish(msg, routing_key)

            channel = yield from client.channel()
            exchange = yield from channel.declare_exchange('direct', auto_delete=True)
        finally:
            yield from exchange.delete()
            yield from wait((client.close(), client.closing), loop=self.loop)
예제 #2
0
    async def test_connection_close(self):
        client = await self.create_connection()

        routing_key = self.get_random_name()

        channel = await client.channel()  # type: aio_pika.Channel
        exchange = await channel.declare_exchange('direct', auto_delete=True)

        try:
            with pytest.raises(aio_pika.exceptions.ChannelClosed):
                msg = Message(bytes(shortuuid.uuid(), 'utf-8'))
                msg.delivery_mode = 8

                await exchange.publish(msg, routing_key)

            channel = await client.channel()
            exchange = await channel.declare_exchange('direct',
                                                      auto_delete=True)
        finally:
            await exchange.delete()
            await wait((client.close(), client.closing), loop=self.loop)
예제 #3
0
    async def test_connection_close(
        self, connection: aio_pika.Connection, declare_exchange: Callable
    ):
        routing_key = get_random_name()

        channel = await self.create_channel(connection)
        exchange = await declare_exchange(
            "direct", auto_delete=True, channel=channel,
        )

        try:
            with pytest.raises(aio_pika.exceptions.ChannelPreconditionFailed):
                msg = Message(bytes(shortuuid.uuid(), "utf-8"))
                msg.delivery_mode = 8

                await exchange.publish(msg, routing_key)

            channel = await self.create_channel(connection)
            exchange = await declare_exchange(
                "direct", auto_delete=True, channel=channel,
            )
        finally:
            await exchange.delete()