mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-25 05:23:58 -07:00
Some checks are pending
EOL CI / EOL Sanity (Ⓐ2.17) (push) Waiting to run
EOL CI / EOL Units (Ⓐ2.17+py3.10) (push) Waiting to run
EOL CI / EOL Units (Ⓐ2.17+py3.12) (push) Waiting to run
EOL CI / EOL Units (Ⓐ2.17+py3.7) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+alpine319+py:azp/posix/1/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+alpine319+py:azp/posix/2/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+alpine319+py:azp/posix/3/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+fedora39+py:azp/posix/1/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+fedora39+py:azp/posix/2/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+fedora39+py:azp/posix/3/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+ubuntu2004+py:azp/posix/1/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+ubuntu2004+py:azp/posix/2/) (push) Waiting to run
EOL CI / EOL I (Ⓐ2.17+ubuntu2004+py:azp/posix/3/) (push) Waiting to run
nox / Run extra sanity tests (push) Waiting to run
* Adjust all __future__ imports: for i in $(grep -REl "__future__.*absolute_import" plugins/ tests/); do sed -e 's/from __future__ import .*/from __future__ import annotations/g' -i $i; done * Remove all UTF-8 encoding specifications for Python source files: for i in $(grep -REl '[-][*]- coding: utf-8 -[*]-' plugins/ tests/); do sed -e '/^# -\*- coding: utf-8 -\*-/d' -i $i; done * Remove __metaclass__ = type: for i in $(grep -REl '__metaclass__ = type' plugins/ tests/); do sed -e '/^__metaclass__ = type/d' -i $i; done
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
# 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 annotations
|
|
|
|
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
|