mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-05-01 14:51:27 -07:00
correctly deals with non serializable type
combine_vars shoudl really be data types, but some just get in in test, add dict to mock and avoid combine_vars using object
This commit is contained in:
parent
83069a38d5
commit
27f4730c29
2 changed files with 10 additions and 2 deletions
|
@ -28,7 +28,8 @@ from ansible.compat.six import iteritems, string_types
|
||||||
from ansible import constants as C
|
from ansible import constants as C
|
||||||
from ansible.errors import AnsibleError
|
from ansible.errors import AnsibleError
|
||||||
from ansible.parsing.splitter import parse_kv
|
from ansible.parsing.splitter import parse_kv
|
||||||
from ansible.utils.unicode import to_unicode
|
from ansible.utils.unicode import to_unicode, to_str
|
||||||
|
|
||||||
|
|
||||||
def _validate_mutable_mappings(a, b):
|
def _validate_mutable_mappings(a, b):
|
||||||
"""
|
"""
|
||||||
|
@ -43,8 +44,14 @@ def _validate_mutable_mappings(a, b):
|
||||||
# a variable number of arguments instead.
|
# a variable number of arguments instead.
|
||||||
|
|
||||||
if not (isinstance(a, MutableMapping) and isinstance(b, MutableMapping)):
|
if not (isinstance(a, MutableMapping) and isinstance(b, MutableMapping)):
|
||||||
|
myvars = []
|
||||||
|
for x in [a, b]:
|
||||||
|
try:
|
||||||
|
myvars.append(dumps(x))
|
||||||
|
except:
|
||||||
|
myvars.append(to_str(x))
|
||||||
raise AnsibleError("failed to combine variables, expected dicts but got a '{0}' and a '{1}': \n{2}\n{3}".format(
|
raise AnsibleError("failed to combine variables, expected dicts but got a '{0}' and a '{1}': \n{2}\n{3}".format(
|
||||||
a.__class__.__name__, b.__class__.__name__, dumps(a), dumps(b))
|
a.__class__.__name__, b.__class__.__name__, myvars[0], myvars[1])
|
||||||
)
|
)
|
||||||
|
|
||||||
def combine_vars(a, b):
|
def combine_vars(a, b):
|
||||||
|
|
|
@ -196,6 +196,7 @@ class TestStrategyBase(unittest.TestCase):
|
||||||
mock_inventory.get_host.side_effect = _get_host
|
mock_inventory.get_host.side_effect = _get_host
|
||||||
mock_inventory.get_group.side_effect = _get_group
|
mock_inventory.get_group.side_effect = _get_group
|
||||||
mock_inventory.clear_pattern_cache.return_value = None
|
mock_inventory.clear_pattern_cache.return_value = None
|
||||||
|
mock_inventory.get_host_vars.return_value = {}
|
||||||
|
|
||||||
mock_var_mgr = MagicMock()
|
mock_var_mgr = MagicMock()
|
||||||
mock_var_mgr.set_host_variable.return_value = None
|
mock_var_mgr.set_host_variable.return_value = None
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue