# 2018.07.26 --- use DictComparison instead of GcpRequest # # Copyright (c) 2016, Tom Melendez # # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later from __future__ import annotations import unittest from ansible_collections.community.general.plugins.module_utils.hwc_utils import are_different_dicts class HwcDictComparisonTestCase(unittest.TestCase): def test_simple_no_difference(self): value1 = {"foo": "bar", "test": "original"} self.assertFalse(are_different_dicts(value1, value1)) def test_simple_different(self): value1 = {"foo": "bar", "test": "original"} value2 = {"foo": "bar", "test": "different"} value3 = {"test": "original"} self.assertTrue(are_different_dicts(value1, value2)) self.assertTrue(are_different_dicts(value1, value3)) self.assertTrue(are_different_dicts(value2, value3)) def test_nested_dictionaries_no_difference(self): value1 = {"foo": {"quiet": {"tree": "test"}, "bar": "baz"}, "test": "original"} self.assertFalse(are_different_dicts(value1, value1)) def test_nested_dictionaries_with_difference(self): value1 = {"foo": {"quiet": {"tree": "test"}, "bar": "baz"}, "test": "original"} value2 = {"foo": {"quiet": {"tree": "baz"}, "bar": "hello"}, "test": "original"} value3 = {"foo": {"quiet": {"tree": "test"}, "bar": "baz"}} self.assertTrue(are_different_dicts(value1, value2)) self.assertTrue(are_different_dicts(value1, value3)) self.assertTrue(are_different_dicts(value2, value3)) def test_arrays_strings_no_difference(self): value1 = {"foo": ["baz", "bar"]} self.assertFalse(are_different_dicts(value1, value1)) def test_arrays_strings_with_difference(self): value1 = { "foo": [ "baz", "bar", ] } value2 = {"foo": ["baz", "hello"]} value3 = { "foo": [ "bar", ] } self.assertTrue(are_different_dicts(value1, value2)) self.assertTrue(are_different_dicts(value1, value3)) self.assertTrue(are_different_dicts(value2, value3)) def test_arrays_dicts_with_no_difference(self): value1 = {"foo": [{"test": "value", "foo": "bar"}, {"different": "dict"}]} self.assertFalse(are_different_dicts(value1, value1)) def test_arrays_dicts_with_difference(self): value1 = {"foo": [{"test": "value", "foo": "bar"}, {"different": "dict"}]} value2 = { "foo": [ {"test": "value2", "foo": "bar2"}, ] } value3 = {"foo": [{"test": "value", "foo": "bar"}]} self.assertTrue(are_different_dicts(value1, value2)) self.assertTrue(are_different_dicts(value1, value3)) self.assertTrue(are_different_dicts(value2, value3))