From 7644aeaf3253211eb052cb138c1150af796a8e77 Mon Sep 17 00:00:00 2001 From: Bertrand Lanson Date: Tue, 19 May 2026 20:38:34 +0200 Subject: [PATCH] Fix unit test helpers for ansible-core 2.19+ ansible-core 2.19 introduced _ANSIBLE_PROFILE alongside _ANSIBLE_ARGS. set_module_args() in utils.py and test_baremetal_port_group.py only set _ANSIBLE_ARGS, causing "No serialization profile was specified" errors. Set _ANSIBLE_PROFILE to 'legacy' to match the pre-2.19 behavior. Change-Id: I1073f347ce18f061b5fa099442a6b6aa10c42507 Signed-off-by: Bertrand Lanson --- .../openstack/test_baremetal_port_group.py | 58 ++----------------- tests/unit/modules/utils.py | 1 + 2 files changed, 7 insertions(+), 52 deletions(-) diff --git a/tests/unit/modules/cloud/openstack/test_baremetal_port_group.py b/tests/unit/modules/cloud/openstack/test_baremetal_port_group.py index 4f689552..93c5eb98 100644 --- a/tests/unit/modules/cloud/openstack/test_baremetal_port_group.py +++ b/tests/unit/modules/cloud/openstack/test_baremetal_port_group.py @@ -1,12 +1,13 @@ import importlib.util -import json -import unittest from pathlib import Path from unittest import mock -from unittest.mock import patch -from ansible.module_utils import basic -from ansible.module_utils._text import to_bytes +from ansible_collections.openstack.cloud.tests.unit.modules.utils import ( + AnsibleExitJson, + AnsibleFailJson, + ModuleTestCase, + set_module_args, +) def _load_module_under_test(): @@ -22,53 +23,6 @@ def _load_module_under_test(): baremetal_port_group = _load_module_under_test() -def set_module_args(args): - if '_ansible_remote_tmp' not in args: - args['_ansible_remote_tmp'] = '/tmp' - if '_ansible_keep_remote_files' not in args: - args['_ansible_keep_remote_files'] = False - - args = json.dumps({'ANSIBLE_MODULE_ARGS': args}) - basic._ANSIBLE_ARGS = to_bytes(args) - - -class AnsibleExitJson(Exception): - pass - - -class AnsibleFailJson(Exception): - pass - - -def exit_json(*args, **kwargs): - if 'changed' not in kwargs: - kwargs['changed'] = False - raise AnsibleExitJson(kwargs) - - -def fail_json(*args, **kwargs): - kwargs['failed'] = True - raise AnsibleFailJson(kwargs) - - -class ModuleTestCase(unittest.TestCase): - mock_module = None - mock_sleep = None - - def setUp(self): - self.mock_module = patch.multiple( - basic.AnsibleModule, - exit_json=exit_json, - fail_json=fail_json, - ) - self.mock_module.start() - self.mock_sleep = patch('time.sleep') - self.mock_sleep.start() - set_module_args({}) - self.addCleanup(self.mock_module.stop) - self.addCleanup(self.mock_sleep.stop) - - class FakePortGroup(dict[str, object]): def to_dict(self, computed=False): diff --git a/tests/unit/modules/utils.py b/tests/unit/modules/utils.py index 057dcd1a..4f269207 100644 --- a/tests/unit/modules/utils.py +++ b/tests/unit/modules/utils.py @@ -14,6 +14,7 @@ def set_module_args(args): args = json.dumps({'ANSIBLE_MODULE_ARGS': args}) basic._ANSIBLE_ARGS = to_bytes(args) + basic._ANSIBLE_PROFILE = 'legacy' class AnsibleExitJson(Exception):