diff --git a/oslo_messaging/tests/drivers/test_amqp_driver.py b/oslo_messaging/tests/drivers/test_amqp_driver.py index 36e5e735a..e5cb5bf16 100644 --- a/oslo_messaging/tests/drivers/test_amqp_driver.py +++ b/oslo_messaging/tests/drivers/test_amqp_driver.py @@ -1420,16 +1420,24 @@ class TestMessageRetransmit(_AmqpBrokerTestCase): None, None)._poll_style_listener, 1) - rc = driver.send(target, {"context": "whatever"}, - {"method": "echo", "id": "blah"}, - wait_for_reply=True, - retry=2) # initial send + up to 2 resends - self.assertIsNotNone(rc) - self.assertEqual(0, self._nack_count) - self.assertEqual(rc.get('correlation-id'), 'blah') - listener.join(timeout=30) - self.assertFalse(listener.isAlive()) - driver.cleanup() + try: + rc = driver.send(target, {"context": "whatever"}, + {"method": "echo", "id": "blah"}, + wait_for_reply=True, + retry=2) # initial send + up to 2 resends + except Exception: + # Some test runs are expected to raise an exception, + # clean up the listener since no message was received + listener.kill(timeout=30) + raise + else: + self.assertIsNotNone(rc) + self.assertEqual(0, self._nack_count) + self.assertEqual(rc.get('correlation-id'), 'blah') + listener.join(timeout=30) + finally: + self.assertFalse(listener.isAlive()) + driver.cleanup() def test_released(self): # should retry and succeed