def test_peer_task(self): route_key = conf.PEER_QUEUE_NAME_FORMAT.format(amqp_key=conf.AMQP_KEY) service = PeerInnerService(conf.AMQP_TARGET, route_key, peer_service=None) service._callback_connection_close = lambda conn: None stub = PeerInnerStub(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, 'peer_hello') bad_service = PeerInnerService(conf.AMQP_TARGET, route_key, peer_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())
async def create_peer_stub(self): from loopchain import configure as conf from loopchain.peer import PeerInnerStub queue_name = conf.PEER_QUEUE_NAME_FORMAT.format(amqp_key=self.amqp_key) self.peer_stub = PeerInnerStub(self.amqp_target, queue_name, conf.AMQP_USERNAME, conf.AMQP_PASSWORD) await self.peer_stub.connect(conf.AMQP_CONNECTION_ATTEMPS, conf.AMQP_RETRY_DELAY) return self.peer_stub