Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_basic_get_content_body(self):
message = b'Hello World!'
body = ContentBody(value=message)
channel = Channel(0, FakeConnection(), 360)
channel.set_state(Channel.OPEN)
basic = Basic(channel)
uuid = channel.rpc.register_request([body.name])
channel.rpc.on_frame(body)
self.assertEqual(basic._get_content_body(uuid, len(message)),
message)
def test_basic_get_content_body_timeout_error(self):
message = b'Hello World!'
body = ContentBody(value=message)
channel = Channel(0, FakeConnection(), 0.0001)
channel.set_state(Channel.OPEN)
basic = Basic(channel)
uuid = channel.rpc.register_request([body.name])
self.assertRaises(exception.AMQPChannelError, basic._get_content_body,
uuid, len(message))
def test_basic_publish(self):
message = str(uuid.uuid4())
exchange = 'test'
routing_key = 'hello'
properties = {'headers': {
'key': 'value'
}}
connection = FakeConnection()
channel = Channel(9, connection, 0.0001)
channel.set_state(Channel.OPEN)
basic = Basic(channel)
basic.publish(body=message,
routing_key=routing_key,
exchange=exchange,
properties=properties,
mandatory=True,
immediate=True)
channel_id, payload = connection.frames_out.pop()
basic_publish, content_header, content_body = payload
# Verify Channel ID
self.assertEqual(channel_id, 9)
# Verify Classes
def __init__(self, channel_id, connection, rpc_timeout):
super(Channel, self).__init__(channel_id)
self.consumer_callback = None
self.rpc = Rpc(self, timeout=rpc_timeout)
self.message_build_timeout = rpc_timeout
self._confirming_deliveries = False
self._connection = connection
self._inbound = []
self._basic = Basic(self)
self._exchange = Exchange(self)
self._tx = Tx(self)
self._queue = Queue(self)
self._die = multiprocessing.Value("b", 0)
response from the server.
:raises AMQPInvalidArgument: Invalid Parameters
:raises AMQPChannelError: Raises if the channel encountered an error.
:raises AMQPConnectionError: Raises if the connection
encountered an error.
"""
LOGGER.debug('Opening a new Channel')
if not compatibility.is_integer(rpc_timeout):
raise AMQPInvalidArgument('rpc_timeout should be an integer')
elif self.is_closed:
raise AMQPConnectionError('socket/connection closed')
with self.lock:
channel_id = self._get_next_available_channel_id()
channel = Channel(channel_id, self, rpc_timeout,
on_close_impl=self._cleanup_channel)
self._channels[channel_id] = channel
if not lazy:
channel.open()
LOGGER.debug('Channel #%d Opened', channel_id)
return self._channels[channel_id]
def __init__(self, channel_id, connection, rpc_timeout,
on_close_impl=None):
super(Channel, self).__init__(channel_id)
self.rpc = Rpc(self, timeout=rpc_timeout)
self._consumer_callbacks = {}
self._confirming_deliveries = False
self._connection = connection
self._on_close_impl = on_close_impl
self._inbound = []
self._basic = Basic(self, connection.max_frame_size)
self._exchange = Exchange(self)
self._tx = Tx(self)
self._queue = Queue(self)
response from the server.
:raises AMQPInvalidArgument: Invalid Parameters
:raises AMQPChannelError: Raises if the channel encountered an error.
:raises AMQPConnectionError: Raises if the connection
encountered an error.
"""
LOGGER.debug('Opening a new Channel')
if not compatibility.is_integer(rpc_timeout):
raise AMQPInvalidArgument('rpc_timeout should be an integer')
elif self.is_closed:
raise AMQPConnectionError('socket/connection closed')
with self.lock:
channel_id = len(self._channels) + 1
channel = Channel(channel_id, self, rpc_timeout)
self._channels[channel_id] = channel
channel.open()
LOGGER.debug('Channel #%d Opened', channel_id)
return self._channels[channel_id]
def _close_remaining_channels(self):
"""Forcefully close all open channels.
:return:
"""
for channel_id in list(self._channels):
self._channels[channel_id].set_state(Channel.CLOSED)
self._channels[channel_id].close()
self._cleanup_channel(channel_id)
def __init__(self, channel_id, connection, rpc_timeout):
super(Channel, self).__init__(channel_id)
self.consumer_callback = None
self.rpc = Rpc(self, timeout=rpc_timeout)
self._confirming_deliveries = False
self._connection = connection
self._inbound = []
self._basic = Basic(self)
self._exchange = Exchange(self)
self._tx = Tx(self)
self._queue = Queue(self)
self._die = multiprocessing.Value("b", 0)