Ejemplo n.º 1
0
    def test_channel_task(self):
        route_key = conf.CHANNEL_QUEUE_NAME_FORMAT.format(
            channel_name=conf.LOOPCHAIN_DEFAULT_CHANNEL,
            amqp_key=conf.AMQP_KEY)

        service = ChannelInnerService(conf.AMQP_TARGET,
                                      route_key,
                                      channel_service=None)
        service._callback_connection_close = lambda conn: None

        stub = ChannelInnerStub(conf.AMQP_TARGET, route_key)
        stub._callback_connection_close = lambda conn: None

        async def _run():
            try:
                await service.connect(exclusive=True)
                await stub.connect()

                result = await stub.async_task().hello()
                self.assertEqual(result, 'channel_hello')

                bad_service = ChannelInnerService(conf.AMQP_TARGET,
                                                  route_key,
                                                  channel_service=None)
                with self.assertRaises(ChannelClosed):
                    await bad_service.connect()

                with self.assertRaises(ChannelClosed):
                    await bad_service.connect(exclusive=True)
            finally:
                await service._connection.close()
                await stub._connection.close()

        loop = asyncio.get_event_loop()
        loop.run_until_complete(_run())
Ejemplo n.º 2
0
    async def create_channel_stub(self, channel_name):
        from loopchain import configure as conf
        from loopchain.channel.channel_inner_service import ChannelInnerStub

        queue_name = conf.CHANNEL_QUEUE_NAME_FORMAT.format(
            channel_name=channel_name, amqp_key=self.amqp_key)
        stub = ChannelInnerStub(self.amqp_target, queue_name, conf.AMQP_USERNAME, conf.AMQP_PASSWORD)
        await stub.connect(conf.AMQP_CONNECTION_ATTEMPS, conf.AMQP_RETRY_DELAY)
        self.channel_stubs[channel_name] = stub

        logging.debug(f"ChannelTasks : {channel_name}, Queue : {queue_name}")
        return stub