1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/unit/plugins/modules/test_dconf.py

45 lines
1.5 KiB
Python
Raw Normal View History

# Copyright (c) 2023 Ansible Project
# 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 (absolute_import, division, print_function)
__metaclass__ = type
import pytest
from ansible_collections.community.general.plugins.modules import dconf
try:
from gi.repository.GLib import Variant
except ImportError:
Variant = None
DconfPreference = dconf.DconfPreference
@pytest.mark.parametrize(
"v1,v2,expected,fallback_expected",
(("'foo'", "'foo'", True, True),
('"foo"', "'foo'", True, False),
("'foo'", '"foo"', True, False),
("'foo'", '"bar"', False, False),
("[1, 2, 3]", "[1, 2, 3]", True, True),
("[1, 2, 3]", "[3, 2, 1]", False, False),
('1234', '1234', True, True),
('1234', '1235', False, False),
('1.0', '1.0', True, True),
('1.000', '1.0', True, False),
('2.0', '4.0', False, False),
# GVariants with different types aren't equal!
('1', '1.0', False, False),
# Explicit types
('@as []', '[]', True, False),
))
def test_gvariant_equality(mocker, v1, v2, expected, fallback_expected):
assert DconfPreference.variants_are_equal(v1, v2) is \
(expected if Variant else fallback_expected)
mocker.patch.object(dconf, 'Variant', None)
mocker.patch.object(dconf, "GError", AttributeError)
assert DconfPreference.variants_are_equal(v1, v2) is fallback_expected