From 8cb94e3443ea11fccb46ef25c7ececc1aea11956 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Thu, 2 Jan 2025 20:14:02 -0800 Subject: [PATCH] [stable-2.16] Fix result_pickle_error integration test (#84506) (#84509) The test has been updated to use a custom type which does not support pickling, instead of relying on Jinja's `Undefined` type. As of Jinja 3.1.5 that type now supports pickle, which breaks the original implementation of the test. (cherry picked from commit 5ec236b) --- .../action_plugins/result_pickle_error.py | 8 ++++++-- .../targets/result_pickle_error/tasks/main.yml | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/test/integration/targets/result_pickle_error/action_plugins/result_pickle_error.py b/test/integration/targets/result_pickle_error/action_plugins/result_pickle_error.py index e8d712a337b..d62871a8f6d 100644 --- a/test/integration/targets/result_pickle_error/action_plugins/result_pickle_error.py +++ b/test/integration/targets/result_pickle_error/action_plugins/result_pickle_error.py @@ -6,10 +6,14 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type from ansible.plugins.action import ActionBase -from jinja2 import Undefined + + +class CannotBePickled: + def __getstate__(self): + raise Exception('pickle intentionally not supported') class ActionModule(ActionBase): def run(self, tmp=None, task_vars=None): - return {'obj': Undefined('obj')} + return {'obj': CannotBePickled()} diff --git a/test/integration/targets/result_pickle_error/tasks/main.yml b/test/integration/targets/result_pickle_error/tasks/main.yml index 895475dd09a..bafa41074fe 100644 --- a/test/integration/targets/result_pickle_error/tasks/main.yml +++ b/test/integration/targets/result_pickle_error/tasks/main.yml @@ -8,7 +8,7 @@ - result.msg == expected_msg - result is failed vars: - expected_msg: "cannot pickle 'Undefined' object" + expected_msg: "pickle intentionally not supported" - debug: msg: Success, no hang