def test_channel_raise_with_close_reply_code_500(self): connection = FakeConnection() channel = Channel(0, connection, 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = [1, 2, 3] close_frame = specification.Channel.Close( reply_code=500, reply_text='travis-ci' ) channel._close_channel(close_frame) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertIsInstance( connection.get_last_frame(), specification.Channel.CloseOk ) self.assertRaisesRegexp( AMQPChannelError, 'Channel 0 was closed by remote server: travis-ci', channel.check_for_errors )
def test_channel_close(self): channel = Channel(0, None, 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = [1, 2, 3] # Close Channel. channel._close_channel(specification.Channel.Close(reply_text='')) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED)
def test_channel_close(self): channel = Channel(0, None, 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = [1, 2, 3] # Close Channel. channel._close_channel(specification.Channel.Close(reply_text='')) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED)
def test_channel_close_channel(self): channel = Channel(0, FakeConnection(), 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = [1, 2, 3] close_frame = specification.Channel.Close(reply_code=200, reply_text='travis-ci') # Close Channel. channel._close_channel(close_frame) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED)
def test_channel_close_channel(self): channel = Channel(0, FakeConnection(), 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = [1, 2, 3] close_frame = specification.Channel.Close(reply_code=200, reply_text='travis-ci') # Close Channel. channel._close_channel(close_frame) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED)
def test_close_channel(self): channel = Channel(0, None, 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = [1, 2, 3] # Close Channel. # FixMe: Work around for reply_text not being a byte string # when not sent from RabbitMQ (i.e using the default pamqp message). channel._close_channel(specification.Channel.Close(reply_text=b'')) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED)
def test_channel_raise_with_close_reply_code_500(self): connection = FakeConnection() channel = Channel(0, connection, 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = [4, 5, 6] close_frame = commands.Channel.Close(reply_code=500, reply_text='travis-ci') channel._close_channel(close_frame) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertRaisesRegexp( AMQPChannelError, 'Channel 0 was closed by remote server: travis-ci', channel.check_for_errors)
def test_channel_close_gracefully_with_queued_error(self): def on_close_ok(_, frame_out): if isinstance(frame_out, specification.Basic.Cancel): raise AMQPChannelError('travis-ci') channel.rpc.on_frame(specification.Channel.CloseOk()) channel = Channel(0, FakeConnection(on_write=on_close_ok), 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = ['1', '2', '3'] channel.exceptions.append(AMQPChannelError('travis-ci')) # Close Channel. channel.close() self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertTrue(channel.exceptions)
def test_channel_close(self): def on_close_ok(_, frame_out): if isinstance(frame_out, specification.Basic.Cancel): channel.rpc.on_frame(specification.Basic.CancelOk()) return channel.rpc.on_frame(specification.Channel.CloseOk()) channel = Channel(0, FakeConnection(on_write=on_close_ok), 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = ['1', '2', '3'] # Close Channel. channel.close() self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertFalse(channel.exceptions)
def test_channel_close_gracefully_with_queued_error(self): def on_close_ok(_, frame_out): if isinstance(frame_out, specification.Basic.Cancel): raise AMQPChannelError('travis-ci') channel.rpc.on_frame(specification.Channel.CloseOk()) channel = Channel(0, FakeConnection(on_write=on_close_ok), 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = ['1', '2', '3'] channel.exceptions.append(AMQPChannelError('travis-ci')) # Close Channel. channel.close() self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertTrue(channel.exceptions)
def test_channel_close(self): def on_close_ok(_, frame_out): if isinstance(frame_out, specification.Basic.Cancel): channel.rpc.on_frame(specification.Basic.CancelOk()) return channel.rpc.on_frame(specification.Channel.CloseOk()) channel = Channel(0, FakeConnection(on_write=on_close_ok), 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.OPEN) channel._consumer_tags = ['1', '2', '3'] # Close Channel. channel.close() self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertFalse(channel.exceptions)
def test_channel_close_when_already_closed(self): fake_connection = FakeConnection() channel = Channel(0, fake_connection, 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.CLOSED) channel._consumer_tags = ['1', '2', '3'] def state_set(state): self.assertEqual(state, channel.CLOSED) channel.set_state = state_set # Close Channel. channel.close() self.assertFalse(fake_connection.frames_out) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertFalse(channel.exceptions)
def test_channel_close_when_already_closed(self): fake_connection = FakeConnection() channel = Channel(0, fake_connection, 360) # Set up Fake Channel. channel._inbound = [1, 2, 3] channel.set_state(channel.CLOSED) channel._consumer_tags = ['1', '2', '3'] def state_set(state): self.assertEqual(state, channel.CLOSED) channel.set_state = state_set # Close Channel. channel.close() self.assertFalse(fake_connection.frames_out) self.assertEqual(channel._inbound, []) self.assertEqual(channel._consumer_tags, []) self.assertEqual(channel._state, channel.CLOSED) self.assertFalse(channel.exceptions)