async def test_normal_backend(self): async with aio.insecure_channel(self._server_address) as channel: current_state = channel.get_state(True) self.assertEqual(grpc.ChannelConnectivity.IDLE, current_state) # Should not time out await asyncio.wait_for( _common.block_until_certain_state( channel, grpc.ChannelConnectivity.READY), test_constants.SHORT_TIMEOUT)
async def test_timeout(self): async with aio.insecure_channel(self._server_address) as channel: self.assertEqual(grpc.ChannelConnectivity.IDLE, channel.get_state(False)) # If timed out, the function should return None. with self.assertRaises(asyncio.TimeoutError): await asyncio.wait_for( _common.block_until_certain_state( channel, grpc.ChannelConnectivity.READY), test_constants.SHORT_TIMEOUT)
async def test_unavailable_backend(self): async with aio.insecure_channel(UNREACHABLE_TARGET) as channel: self.assertEqual(grpc.ChannelConnectivity.IDLE, channel.get_state(False)) self.assertEqual(grpc.ChannelConnectivity.IDLE, channel.get_state(True)) # Should not time out await asyncio.wait_for( _common.block_until_certain_state( channel, grpc.ChannelConnectivity.TRANSIENT_FAILURE), test_constants.SHORT_TIMEOUT)