BlockingChannel.basic_nack multiple messages
(self)
| 1302 | class 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 | |
| 1350 | class TestBasicRecoverWithRequeue(BlockingTestCaseBase): |
nothing calls this directly
no test coverage detected