From a738efd7f215fe1477f7419b107e04314c672708 Mon Sep 17 00:00:00 2001 From: Edin Sarajlic Date: Thu, 19 Sep 2019 16:24:32 +1000 Subject: [PATCH] Test: Rmq unit action 'list-unconsumed-queues' returns a Juju action --- .../charm_tests/rabbitmq_server/tests.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/zaza/openstack/charm_tests/rabbitmq_server/tests.py b/zaza/openstack/charm_tests/rabbitmq_server/tests.py index 6127522..32ff23c 100644 --- a/zaza/openstack/charm_tests/rabbitmq_server/tests.py +++ b/zaza/openstack/charm_tests/rabbitmq_server/tests.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import json import logging import time import uuid @@ -245,3 +246,31 @@ class RmqTests(test_utils.OpenStackBaseTest): action = zaza.model.run_action(unit.entity_id, "check-queues") self.assertIsInstance(action, juju.action.Action) + def test_913_list_unconsumed_queues(self): + """ rabbitmqctl list-unconsumed-queues action can be returned. """ + logging.debug('Checking list-unconsumed-queues action...') + + unit = zaza.model.get_units(self.application_name)[0] + self._test_rmq_amqp_messages_all_units([unit]) + action = zaza.model.run_action(unit.entity_id, + 'list-unconsumed-queues') + self.assertIsInstance(action, juju.action.Action) + + queue_count = int(action.results['unconsumed-queue-count']) + assert queue_count > 0, 'Did not find any unconsumed queues.' + + queue_name = 'test' # publish_amqp_message_by_unit default queue name + for i in range(queue_count): + queue_data = json.loads( + action.results['unconsumed-queues'][str(i)]) + if queue_data['name'] == queue_name: + break + else: + assert False, 'Did not find expected queue in result.' + + # Since we just reused _test_rmq_amqp_messages_all_units, we should + # have created the queue if it didn't already exist, but all messages + # should have already been consumed. + assert queue_data['messages'] == 0, 'Found unexpected message count.' + + logging.debug('OK')