1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-02-04 07:51:50 +00:00
community.general/tests/unit/plugins/modules/conftest.py
2025-11-01 13:46:53 +01:00

50 lines
1.2 KiB
Python

# Copyright (c) 2017 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 contextlib as _contextlib
import json
from collections.abc import MutableMapping
import pytest
from ansible_collections.community.general.plugins.module_utils import deps
from ansible_collections.community.internal_test_tools.tests.unit.plugins.modules.utils import (
set_module_args as _set_module_args,
)
def _fix_ansible_args(args):
if isinstance(args, str):
# This should be deprecated!
return json.loads(args)
if isinstance(args, MutableMapping):
return args
raise Exception("Malformed data to the patch_ansible_module pytest fixture")
@pytest.fixture
def patch_ansible_module(request):
args = _fix_ansible_args(request.param)
with _set_module_args(args):
yield
@pytest.fixture
def patch_ansible_module_uthelper(request):
@_contextlib.contextmanager
def _patch(args):
args = _fix_ansible_args(args)
with _set_module_args(args):
yield
return _patch
@pytest.fixture(autouse=True)
def deps_cleanup():
deps.clear()