From c71a2b33dd4f9897046232d876b5929955558f0a Mon Sep 17 00:00:00 2001 From: Rafael Guterres Jeffman <rjeffman@redhat.com> Date: Fri, 29 Sep 2023 12:51:59 -0300 Subject: [PATCH] upstream CI: Fix test selection for CheckPR pipeline. Due to an error on processing Ansible key 'import_tasks' the script that creates a list of modules to test is broken making some modules to be not tested. By fixing the handling of 'import_tasks' and module import, the list is correct again and the list of modules to be tested now include the ones which depend on the modified module. --- utils/get_test_modules.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/utils/get_test_modules.py b/utils/get_test_modules.py index 2f83176e..3e9306b0 100644 --- a/utils/get_test_modules.py +++ b/utils/get_test_modules.py @@ -23,8 +23,6 @@ def get_plugins_from_playbook(playbook): for tasks in task_block: for task in tasks: original_task = task - if "." in task: - task = task.split(".")[-1] if task == "block": _result.update(get_tasks(tasks["block"])) elif task in ["include_tasks", "import_tasks" @@ -127,8 +125,16 @@ def parse_playbooks(test_module): "builtins.__import__", side_effect=import_mock ): # pylint: disable=no-value-for-parameter - loader = SourceFileLoader(playbook, source) - loader.exec_module(types.ModuleType(loader.name)) + try: + loader = SourceFileLoader(playbook, source) + loader.exec_module( + types.ModuleType(loader.name) + ) + except Exception: # pylint: disable=broad-except + # If import fails, we'll assume there's no + # plugin to be loaded. This is of little risk + # it is rare that a plugin includes another. + pass # pylint: disable=no-member candidates = [ f.split(".")[1:] -- GitLab