From c17149c4dbeee651ab975f32c29a694adaaa452d Mon Sep 17 00:00:00 2001 From: Sloane Hertel <19572925+s-hertel@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:58:41 -0400 Subject: [PATCH] Fix error message given by ansible.module_utils.facts.timeout.timeout (#83945) (#84068) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update unit test Co-authored-by: Sviatoslav Sydorenko (Святослав Сидоренко) (cherry picked from commit ee9e6130a7d4a3765a6e18abdd979d244c3fce7c) --- changelogs/fragments/fix-module-utils-facts-timeout.yml | 2 ++ lib/ansible/module_utils/facts/timeout.py | 2 +- test/units/modules/test_mount_facts.py | 4 +--- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 changelogs/fragments/fix-module-utils-facts-timeout.yml diff --git a/changelogs/fragments/fix-module-utils-facts-timeout.yml b/changelogs/fragments/fix-module-utils-facts-timeout.yml new file mode 100644 index 00000000000..3ecc95dfab3 --- /dev/null +++ b/changelogs/fragments/fix-module-utils-facts-timeout.yml @@ -0,0 +1,2 @@ +bugfixes: + - Use the requested error message in the ansible.module_utils.facts.timeout timeout function instead of hardcoding one. diff --git a/lib/ansible/module_utils/facts/timeout.py b/lib/ansible/module_utils/facts/timeout.py index 5fb749fb6b3..3b0476245b8 100644 --- a/lib/ansible/module_utils/facts/timeout.py +++ b/lib/ansible/module_utils/facts/timeout.py @@ -48,7 +48,7 @@ def timeout(seconds=None, error_message="Timer expired"): return res.get(timeout_value) except multiprocessing.TimeoutError: # This is an ansible.module_utils.common.facts.timeout.TimeoutError - raise TimeoutError('Timer expired after %s seconds' % timeout_value) + raise TimeoutError(f'{error_message} after {timeout_value} seconds') finally: pool.terminate() diff --git a/test/units/modules/test_mount_facts.py b/test/units/modules/test_mount_facts.py index 64f36a69348..2a2faec52cc 100644 --- a/test/units/modules/test_mount_facts.py +++ b/test/units/modules/test_mount_facts.py @@ -272,9 +272,7 @@ def test_get_mount_size_timeout(monkeypatch, set_file_content, on_timeout, shoul raise Exception("Timeout failed") monkeypatch.setattr(mount_facts, "get_mount_size", mock_slow_function) - # FIXME - # match = "Timed out getting mount size .*" - match = "Timer expired after 0.1 seconds" + match = r"Timed out getting mount size for mount /proc \(type proc\) after 0.1 seconds" if should_raise: with pytest.raises(AnsibleFailJson, match=match):