MCPcopy
hub / github.com/pika/pika / test

Method test

tests/acceptance/blocking_adapter_test.py:1304–1347  ·  view source on GitHub ↗

BlockingChannel.basic_nack multiple messages

(self)

Source from the content-addressed store, hash-verified

1302class TestBasicNackMultiple(BlockingTestCaseBase):
1303
1304 def test(self):
1305 """BlockingChannel.basic_nack multiple messages"""
1306 connection = self._connect()
1307
1308 ch = connection.channel()
1309
1310 q_name = 'TestBasicNackMultiple_q' + uuid.uuid1().hex
1311
1312 # Place channel in publisher-acknowledgments mode so that the message
1313 # may be delivered synchronously to the queue by publishing it with
1314 # mandatory=True
1315 ch.confirm_delivery()
1316
1317 # Declare a new queue
1318 ch.queue_declare(q_name, exclusive=True)
1319
1320 # Deposit two messages in the queue via default exchange
1321 ch.basic_publish(exchange='',
1322 routing_key=q_name,
1323 body='TestBasicNackMultiple1',
1324 mandatory=True)
1325 ch.basic_publish(exchange='',
1326 routing_key=q_name,
1327 body='TestBasicNackMultiple2',
1328 mandatory=True)
1329
1330 # Get the messages
1331 (rx_method, _, rx_body) = ch.basic_get(q_name, auto_ack=False)
1332 self.assertEqual(rx_body, as_bytes('TestBasicNackMultiple1'))
1333
1334 (rx_method, _, rx_body) = ch.basic_get(q_name, auto_ack=False)
1335 self.assertEqual(rx_body, as_bytes('TestBasicNackMultiple2'))
1336
1337 # Nack both messages via the "multiple" option
1338 ch.basic_nack(rx_method.delivery_tag, multiple=True, requeue=True)
1339
1340 # Verify that both messages are present in the queue
1341 self._assert_exact_message_count_with_retries(channel=ch,
1342 queue=q_name,
1343 expected_count=2)
1344 (rx_method, _, rx_body) = ch.basic_get(q_name, auto_ack=False)
1345 self.assertEqual(rx_body, as_bytes('TestBasicNackMultiple1'))
1346 (rx_method, _, rx_body) = ch.basic_get(q_name, auto_ack=False)
1347 self.assertEqual(rx_body, as_bytes('TestBasicNackMultiple2'))
1348
1349
1350class TestBasicRecoverWithRequeue(BlockingTestCaseBase):

Callers

nothing calls this directly

Calls 9

as_bytesFunction · 0.90
_connectMethod · 0.45
channelMethod · 0.45
confirm_deliveryMethod · 0.45
queue_declareMethod · 0.45
basic_publishMethod · 0.45
basic_getMethod · 0.45
basic_nackMethod · 0.45

Tested by

no test coverage detected