From 5e1eac1f6f232ff7a3092defb2daa3fecaf86cb8 Mon Sep 17 00:00:00 2001 From: Ken Tsang Date: Thu, 14 Dec 2017 17:05:36 +0000 Subject: [PATCH] Add test for manifest-delivery-base.yml - This should ensure that queue names defined in config.py / QueueNames are in the manifest-delivery-base.yml --- tests/test_manifest_delivery_base.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/test_manifest_delivery_base.py diff --git a/tests/test_manifest_delivery_base.py b/tests/test_manifest_delivery_base.py new file mode 100644 index 000000000..265a1170b --- /dev/null +++ b/tests/test_manifest_delivery_base.py @@ -0,0 +1,23 @@ +import yaml + +from app.config import QueueNames + + +def test_queue_names_set_in_manifest_delivery_base_correctly(): + with open("manifest-delivery-base.yml", 'r') as stream: + search = ' -Q ' + yml_commands = [y['command'] for y in yaml.load(stream)['applications']] + + watched_queues = set() + for command in yml_commands: + start_of_queue_arg = command.find(search) + if start_of_queue_arg > 0: + start_of_queue_names = start_of_queue_arg + len(search) + queues = command[start_of_queue_names:].split(',') + watched_queues.update(queues) + + # ses-callbacks isn't used in api (only used in SNS lambda) + ignored_queues = {'ses-callbacks'} + watched_queues -= ignored_queues + + assert watched_queues == set(QueueNames.all_queues())