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_process_with_body_frame_partial(self):
value = frame.Header(1, 100, spec.BasicProperties)
self.obj.process(value)
value = frame.Method(1, spec.Basic.Deliver())
self.obj.process(value)
value = frame.Body(1, b'abc123')
self.obj.process(value)
self.assertEqual(self.obj._body_fragments, [value.fragment])
def test_add_on_connection_unblocked_callback(self):
unblocked_buffer = []
self.connection.add_on_connection_unblocked_callback(
lambda conn, frame: unblocked_buffer.append((conn, frame)))
# Simulate dispatch of unblocked connection
unblocked_frame = pika.frame.Method(0, pika.spec.Connection.Unblocked())
self.connection._process_frame(unblocked_frame)
self.assertEqual(len(unblocked_buffer), 1)
conn, frame = unblocked_buffer[0]
self.assertIs(conn, self.connection)
self.assertIs(frame, unblocked_frame)
def check(result):
self.assertTrue(isinstance(result, Method))
queue_obj.close.assert_called_once()
self.assertTrue(isinstance(
queue_obj.close.call_args[0][0], ConsumerCancelled))
self.assertEqual(len(self.channel._consumers), 1)
queue_obj_2.close.assert_not_called()
self.assertEqual(
self.channel._queue_name_to_consumer_tags["testqueue"],
set())
d.addCallback(check)
self.obj._cleanup = mock.Mock(wraps=self.obj._cleanup)
# close() called by user
self.obj.close(200, 'Got to go')
self.obj._rpc.assert_called_once_with(
spec.Channel.Close(200, 'Got to go', 0, 0), self.obj._on_closeok,
[spec.Channel.CloseOk])
self.assertEqual(self.obj._closing_reason.reply_code, 200)
self.assertEqual(self.obj._closing_reason.reply_text, 'Got to go')
self.assertEqual(self.obj._state, self.obj.CLOSING)
# OpenOk method from broker
self.obj._on_openok(
frame.Method(self.obj.channel_number,
spec.Channel.OpenOk(self.obj.channel_number)))
self.assertEqual(self.obj._state, self.obj.CLOSING)
self.assertEqual(self.obj.callbacks.process.call_count, 0)
# CloseOk method from broker
self.obj._on_closeok(
frame.Method(self.obj.channel_number, spec.Channel.CloseOk()))
self.assertEqual(self.obj._state, self.obj.CLOSED)
self.obj.callbacks.process.assert_any_call(self.obj.channel_number,
'_on_channel_close',
self.obj, self.obj,
mock.ANY)
self.assertEqual(self.obj._cleanup.call_count, 1)
def test_on_flowok_callback_reset(self):
method_frame = frame.Method(self.obj.channel_number,
spec.Channel.FlowOk())
mock_callback = mock.Mock()
self.obj._on_flowok_callback = mock_callback
self.obj._on_flowok(method_frame)
self.assertIsNone(self.obj._on_flowok_callback)
def test_handle_content_frame_basic_deliver_called(self):
method_value = frame.Method(1, spec.Basic.Deliver('ctag0', 1))
self.obj._handle_content_frame(method_value)
header_value = frame.Header(1, 10, spec.BasicProperties())
self.obj._handle_content_frame(header_value)
body_value = frame.Body(1, b'0123456789')
with mock.patch.object(self.obj, '_on_deliver') as deliver:
self.obj._handle_content_frame(body_value)
deliver.assert_called_once_with(method_value, header_value,
b'0123456789')
def test_on_openok_callback_called(self):
mock_callback = mock.Mock()
self.obj._on_openok_callback = mock_callback
method_value = frame.Method(1, spec.Channel.OpenOk())
self.obj._on_openok(method_value)
mock_callback.assert_called_once_with(self.obj)
def test_handle_content_frame_basic_return_called(self):
method_value = frame.Method(1,
spec.Basic.Return(999, 'Reply Text',
'exchange_value',
'routing.key'))
self.obj._handle_content_frame(method_value)
header_value = frame.Header(1, 10, spec.BasicProperties())
self.obj._handle_content_frame(header_value)
body_value = frame.Body(1, b'0123456789')
with mock.patch.object(self.obj, '_on_return') as basic_return:
self.obj._handle_content_frame(body_value)
basic_return.assert_called_once_with(method_value, header_value,
b'0123456789')
async def send_tune_ok(self):
# TODO: for now, do not want a heartbeat
tunk = pika.spec.Connection.TuneOk(frame_max=self.MAX_DATA_SIZE)
frame_value = pika.frame.Method(0, tunk)
await self.sock.sendall(frame_value.marshal())
return
def _send_message(self, channel_number, method_frame, content):
"""Publish a message.
:param int channel_number: The channel number for the frame
:param pika.object.Method method_frame: The method frame to send
:param tuple content: A content frame, which is tuple of properties and
body.
"""
length = len(content[1])
marshaled_body_frames = []
# Note: we construct the Method, Header and Content objects, marshal them
# *then* output in case the marshaling operation throws an exception
frame_method = frame.Method(channel_number, method_frame)
frame_header = frame.Header(channel_number, length, content[0])
marshaled_body_frames.append(frame_method.marshal())
marshaled_body_frames.append(frame_header.marshal())
if content[1]:
chunks = int(math.ceil(float(length) / self._body_max_length))
for chunk in xrange(0, chunks):
start = chunk * self._body_max_length
end = start + self._body_max_length
if end > length:
end = length
frame_body = frame.Body(channel_number, content[1][start:end])
marshaled_body_frames.append(frame_body.marshal())
self._output_marshaled_frames(marshaled_body_frames)