From b013ba0c700b57999b72002863c0d49c47ec7472 Mon Sep 17 00:00:00 2001 From: Maxwell G Date: Sat, 4 Jun 2022 00:14:17 -0500 Subject: [PATCH] Use upstream patches to get rid of python3-mock. --- ...eb6832ceb49d8d9ca49dffd1cb2497e88316.patch | 538 ++++++++++++++ ...cc38fdb656d359e9cbb8a10053997b8f68ba.patch | 674 ++++++++++++++++++ 77952.patch | 63 ++ 77961.patch | 96 +++ ansible-core.spec | 15 +- 5 files changed, 1382 insertions(+), 4 deletions(-) create mode 100644 46a1eb6832ceb49d8d9ca49dffd1cb2497e88316.patch create mode 100644 47e1cc38fdb656d359e9cbb8a10053997b8f68ba.patch create mode 100644 77952.patch create mode 100644 77961.patch diff --git a/46a1eb6832ceb49d8d9ca49dffd1cb2497e88316.patch b/46a1eb6832ceb49d8d9ca49dffd1cb2497e88316.patch new file mode 100644 index 0000000..d0e75ff --- /dev/null +++ b/46a1eb6832ceb49d8d9ca49dffd1cb2497e88316.patch @@ -0,0 +1,538 @@ +From 46a1eb6832ceb49d8d9ca49dffd1cb2497e88316 Mon Sep 17 00:00:00 2001 +From: Matt Clay +Date: Mon, 23 May 2022 12:00:10 -0700 +Subject: [PATCH] [stable-2.13] Prefer unittest.mock over mock. (#77886) + (cherry picked from commit 2595b42acadc4a441e14f3a40bb518930e956e1e) + +Co-authored-by: Matt Clay +--- + test/units/compat/mock.py | 23 +++++++++++++++++++ + .../module_utils/basic/test_argument_spec.py | 2 +- + .../module_utils/basic/test_filesystem.py | 2 +- + .../basic/test_get_module_path.py | 2 +- + test/units/module_utils/basic/test_imports.py | 2 +- + .../basic/test_platform_distribution.py | 2 +- + test/units/module_utils/basic/test_selinux.py | 2 +- + test/units/module_utils/basic/test_set_cwd.py | 2 +- + test/units/module_utils/basic/test_tmpdir.py | 2 +- + test/units/module_utils/common/test_locale.py | 2 +- + .../module_utils/common/test_sys_info.py | 2 +- + test/units/module_utils/facts/base.py | 2 +- + .../module_utils/facts/hardware/test_linux.py | 2 +- + .../module_utils/facts/network/test_fc_wwn.py | 2 +- + .../facts/network/test_generic_bsd.py | 2 +- + .../facts/network/test_iscsi_get_initiator.py | 2 +- + .../module_utils/facts/other/test_facter.py | 2 +- + .../module_utils/facts/other/test_ohai.py | 2 +- + .../facts/system/distribution/conftest.py | 2 +- + .../module_utils/facts/system/test_lsb.py | 2 +- + .../facts/test_ansible_collector.py | 2 +- + .../module_utils/facts/test_collectors.py | 2 +- + test/units/module_utils/facts/test_facts.py | 2 +- + test/units/module_utils/facts/test_sysctl.py | 2 +- + test/units/module_utils/facts/test_utils.py | 2 +- + test/units/module_utils/urls/test_Request.py | 2 +- + .../units/module_utils/urls/test_fetch_url.py | 2 +- + test/units/modules/test_apt.py | 7 +++--- + test/units/modules/test_apt_key.py | 11 ++++----- + test/units/modules/test_async_wrapper.py | 2 +- + test/units/modules/test_hostname.py | 2 +- + test/units/modules/test_iptables.py | 2 +- + test/units/modules/test_service_facts.py | 2 +- + test/units/modules/utils.py | 2 +- + 34 files changed, 62 insertions(+), 41 deletions(-) + create mode 100644 test/units/compat/mock.py + +diff --git a/test/units/compat/mock.py b/test/units/compat/mock.py +new file mode 100644 +index 00000000000000..58dc78e07406c0 +--- /dev/null ++++ b/test/units/compat/mock.py +@@ -0,0 +1,23 @@ ++""" ++Compatibility shim for mock imports in modules and module_utils. ++This can be removed once support for Python 2.7 is dropped. ++""" ++from __future__ import (absolute_import, division, print_function) ++__metaclass__ = type ++ ++try: ++ from unittest.mock import ( ++ call, ++ patch, ++ mock_open, ++ MagicMock, ++ Mock, ++ ) ++except ImportError: ++ from mock import ( ++ call, ++ patch, ++ mock_open, ++ MagicMock, ++ Mock, ++ ) +diff --git a/test/units/module_utils/basic/test_argument_spec.py b/test/units/module_utils/basic/test_argument_spec.py +index 20bfb01eac104d..211d65a22fffaa 100644 +--- a/test/units/module_utils/basic/test_argument_spec.py ++++ b/test/units/module_utils/basic/test_argument_spec.py +@@ -12,7 +12,7 @@ + + import pytest + +-from mock import MagicMock ++from units.compat.mock import MagicMock + from ansible.module_utils import basic + from ansible.module_utils.api import basic_auth_argument_spec, rate_limit_argument_spec, retry_argument_spec + from ansible.module_utils.common import warnings +diff --git a/test/units/module_utils/basic/test_filesystem.py b/test/units/module_utils/basic/test_filesystem.py +index 92e2c46e142813..f09cecf46abf7b 100644 +--- a/test/units/module_utils/basic/test_filesystem.py ++++ b/test/units/module_utils/basic/test_filesystem.py +@@ -9,7 +9,7 @@ + + from units.mock.procenv import ModuleTestCase + +-from mock import patch, MagicMock ++from units.compat.mock import patch, MagicMock + from ansible.module_utils.six.moves import builtins + + realimport = builtins.__import__ +diff --git a/test/units/module_utils/basic/test_get_module_path.py b/test/units/module_utils/basic/test_get_module_path.py +index 2d0b8dd09973ec..6ff4a3bc7123a1 100644 +--- a/test/units/module_utils/basic/test_get_module_path.py ++++ b/test/units/module_utils/basic/test_get_module_path.py +@@ -9,7 +9,7 @@ + + from units.mock.procenv import ModuleTestCase + +-from mock import patch ++from units.compat.mock import patch + from ansible.module_utils.six.moves import builtins + + realimport = builtins.__import__ +diff --git a/test/units/module_utils/basic/test_imports.py b/test/units/module_utils/basic/test_imports.py +index 79ab971f60c223..d1a5f3791e1849 100644 +--- a/test/units/module_utils/basic/test_imports.py ++++ b/test/units/module_utils/basic/test_imports.py +@@ -12,7 +12,7 @@ + from units.mock.procenv import ModuleTestCase + + from units.compat import unittest +-from mock import patch ++from units.compat.mock import patch + from ansible.module_utils.six.moves import builtins + + realimport = builtins.__import__ +diff --git a/test/units/module_utils/basic/test_platform_distribution.py b/test/units/module_utils/basic/test_platform_distribution.py +index 6579bee92d4fe1..3c1afb7d85fc93 100644 +--- a/test/units/module_utils/basic/test_platform_distribution.py ++++ b/test/units/module_utils/basic/test_platform_distribution.py +@@ -9,7 +9,7 @@ + + import pytest + +-from mock import patch ++from units.compat.mock import patch + + from ansible.module_utils.six.moves import builtins + +diff --git a/test/units/module_utils/basic/test_selinux.py b/test/units/module_utils/basic/test_selinux.py +index 600ff6b3ab36a6..d8557685cdca62 100644 +--- a/test/units/module_utils/basic/test_selinux.py ++++ b/test/units/module_utils/basic/test_selinux.py +@@ -11,7 +11,7 @@ + import json + import pytest + +-from mock import mock_open, patch ++from units.compat.mock import mock_open, patch + + from ansible.module_utils import basic + from ansible.module_utils.common.text.converters import to_bytes +diff --git a/test/units/module_utils/basic/test_set_cwd.py b/test/units/module_utils/basic/test_set_cwd.py +index 774186016ff672..159236b75e98c5 100644 +--- a/test/units/module_utils/basic/test_set_cwd.py ++++ b/test/units/module_utils/basic/test_set_cwd.py +@@ -13,7 +13,7 @@ + + import pytest + +-from mock import patch, MagicMock ++from units.compat.mock import patch, MagicMock + from ansible.module_utils._text import to_bytes + + from ansible.module_utils import basic +diff --git a/test/units/module_utils/basic/test_tmpdir.py b/test/units/module_utils/basic/test_tmpdir.py +index eec8f62cf79b3d..818cb9b18f1d12 100644 +--- a/test/units/module_utils/basic/test_tmpdir.py ++++ b/test/units/module_utils/basic/test_tmpdir.py +@@ -13,7 +13,7 @@ + + import pytest + +-from mock import patch, MagicMock ++from units.compat.mock import patch, MagicMock + from ansible.module_utils._text import to_bytes + + from ansible.module_utils import basic +diff --git a/test/units/module_utils/common/test_locale.py b/test/units/module_utils/common/test_locale.py +index f8fea476ad19f9..9d9598601e8227 100644 +--- a/test/units/module_utils/common/test_locale.py ++++ b/test/units/module_utils/common/test_locale.py +@@ -5,7 +5,7 @@ + from __future__ import absolute_import, division, print_function + __metaclass__ = type + +-from mock import MagicMock ++from units.compat.mock import MagicMock + + from ansible.module_utils.common.locale import get_best_parsable_locale + +diff --git a/test/units/module_utils/common/test_sys_info.py b/test/units/module_utils/common/test_sys_info.py +index 63101a8120aa5e..18aafe5374deac 100644 +--- a/test/units/module_utils/common/test_sys_info.py ++++ b/test/units/module_utils/common/test_sys_info.py +@@ -9,7 +9,7 @@ + + import pytest + +-from mock import patch ++from units.compat.mock import patch + + from ansible.module_utils.six.moves import builtins + +diff --git a/test/units/module_utils/facts/base.py b/test/units/module_utils/facts/base.py +index 23e620cbf3f5f6..33d3087b14e30d 100644 +--- a/test/units/module_utils/facts/base.py ++++ b/test/units/module_utils/facts/base.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + + class BaseFactsTest(unittest.TestCase): +diff --git a/test/units/module_utils/facts/hardware/test_linux.py b/test/units/module_utils/facts/hardware/test_linux.py +index 1d5845934874cf..e3e07e7850c2a3 100644 +--- a/test/units/module_utils/facts/hardware/test_linux.py ++++ b/test/units/module_utils/facts/hardware/test_linux.py +@@ -19,7 +19,7 @@ + import os + + from units.compat import unittest +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + from ansible.module_utils.facts import timeout + +diff --git a/test/units/module_utils/facts/network/test_fc_wwn.py b/test/units/module_utils/facts/network/test_fc_wwn.py +index 27d45234947775..32a3a43d0a94aa 100644 +--- a/test/units/module_utils/facts/network/test_fc_wwn.py ++++ b/test/units/module_utils/facts/network/test_fc_wwn.py +@@ -6,7 +6,7 @@ + __metaclass__ = type + + from ansible.module_utils.facts.network import fc_wwn +-from mock import Mock ++from units.compat.mock import Mock + + + # AIX lsdev +diff --git a/test/units/module_utils/facts/network/test_generic_bsd.py b/test/units/module_utils/facts/network/test_generic_bsd.py +index 79cc48155179d7..afb698c5718b8a 100644 +--- a/test/units/module_utils/facts/network/test_generic_bsd.py ++++ b/test/units/module_utils/facts/network/test_generic_bsd.py +@@ -18,7 +18,7 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-from mock import Mock ++from units.compat.mock import Mock + from units.compat import unittest + + from ansible.module_utils.facts.network import generic_bsd +diff --git a/test/units/module_utils/facts/network/test_iscsi_get_initiator.py b/test/units/module_utils/facts/network/test_iscsi_get_initiator.py +index 78e5c9605e344b..2048ba2a0009b5 100644 +--- a/test/units/module_utils/facts/network/test_iscsi_get_initiator.py ++++ b/test/units/module_utils/facts/network/test_iscsi_get_initiator.py +@@ -6,7 +6,7 @@ + __metaclass__ = type + + from ansible.module_utils.facts.network import iscsi +-from mock import Mock ++from units.compat.mock import Mock + + + # AIX # lsattr -E -l iscsi0 +diff --git a/test/units/module_utils/facts/other/test_facter.py b/test/units/module_utils/facts/other/test_facter.py +index 517265d32129ea..7466338eb5af9e 100644 +--- a/test/units/module_utils/facts/other/test_facter.py ++++ b/test/units/module_utils/facts/other/test_facter.py +@@ -19,7 +19,7 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + from .. base import BaseFactsTest + +diff --git a/test/units/module_utils/facts/other/test_ohai.py b/test/units/module_utils/facts/other/test_ohai.py +index 38fb67f42efc6e..42a72d9720019a 100644 +--- a/test/units/module_utils/facts/other/test_ohai.py ++++ b/test/units/module_utils/facts/other/test_ohai.py +@@ -19,7 +19,7 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + from .. base import BaseFactsTest + +diff --git a/test/units/module_utils/facts/system/distribution/conftest.py b/test/units/module_utils/facts/system/distribution/conftest.py +index 0282a7fcc9d701..d27b97f07d2b9a 100644 +--- a/test/units/module_utils/facts/system/distribution/conftest.py ++++ b/test/units/module_utils/facts/system/distribution/conftest.py +@@ -8,7 +8,7 @@ + + import pytest + +-from mock import Mock ++from units.compat.mock import Mock + + + @pytest.fixture +diff --git a/test/units/module_utils/facts/system/test_lsb.py b/test/units/module_utils/facts/system/test_lsb.py +index 890bddb69381f1..e2ed2ec0eb143f 100644 +--- a/test/units/module_utils/facts/system/test_lsb.py ++++ b/test/units/module_utils/facts/system/test_lsb.py +@@ -19,7 +19,7 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + from .. base import BaseFactsTest + +diff --git a/test/units/module_utils/facts/test_ansible_collector.py b/test/units/module_utils/facts/test_ansible_collector.py +index e1d60c3d891fc2..47d88df99e4656 100644 +--- a/test/units/module_utils/facts/test_ansible_collector.py ++++ b/test/units/module_utils/facts/test_ansible_collector.py +@@ -21,7 +21,7 @@ + + # for testing + from units.compat import unittest +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + from ansible.module_utils.facts import collector + from ansible.module_utils.facts import ansible_collector +diff --git a/test/units/module_utils/facts/test_collectors.py b/test/units/module_utils/facts/test_collectors.py +index a6f12b56476af4..c48060255e6942 100644 +--- a/test/units/module_utils/facts/test_collectors.py ++++ b/test/units/module_utils/facts/test_collectors.py +@@ -21,7 +21,7 @@ + + import pytest + +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + from . base import BaseFactsTest + +diff --git a/test/units/module_utils/facts/test_facts.py b/test/units/module_utils/facts/test_facts.py +index a49616fc6fd835..c794f03127213f 100644 +--- a/test/units/module_utils/facts/test_facts.py ++++ b/test/units/module_utils/facts/test_facts.py +@@ -26,7 +26,7 @@ + + # for testing + from units.compat import unittest +-from mock import Mock, patch ++from units.compat.mock import Mock, patch + + from ansible.module_utils import facts + from ansible.module_utils.facts import hardware +diff --git a/test/units/module_utils/facts/test_sysctl.py b/test/units/module_utils/facts/test_sysctl.py +index 663369250f3dbb..c369b610806336 100644 +--- a/test/units/module_utils/facts/test_sysctl.py ++++ b/test/units/module_utils/facts/test_sysctl.py +@@ -26,7 +26,7 @@ + + # for testing + from units.compat import unittest +-from mock import patch, MagicMock, mock_open, Mock ++from units.compat.mock import patch, MagicMock, mock_open, Mock + + from ansible.module_utils.facts.sysctl import get_sysctl + +diff --git a/test/units/module_utils/facts/test_utils.py b/test/units/module_utils/facts/test_utils.py +index 70db047512bbdc..28cb5d3194032d 100644 +--- a/test/units/module_utils/facts/test_utils.py ++++ b/test/units/module_utils/facts/test_utils.py +@@ -18,7 +18,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch ++from units.compat.mock import patch + + from ansible.module_utils.facts import utils + +diff --git a/test/units/module_utils/urls/test_Request.py b/test/units/module_utils/urls/test_Request.py +index ebb6de56de67dc..648e46aafe3a76 100644 +--- a/test/units/module_utils/urls/test_Request.py ++++ b/test/units/module_utils/urls/test_Request.py +@@ -13,7 +13,7 @@ + from ansible.module_utils.urls import SSLValidationHandler, HTTPSClientAuthHandler, RedirectHandlerFactory + + import pytest +-from mock import call ++from units.compat.mock import call + + + if HAS_SSLCONTEXT: +diff --git a/test/units/module_utils/urls/test_fetch_url.py b/test/units/module_utils/urls/test_fetch_url.py +index 4869bb0f46b191..56ff54a7db89aa 100644 +--- a/test/units/module_utils/urls/test_fetch_url.py ++++ b/test/units/module_utils/urls/test_fetch_url.py +@@ -13,7 +13,7 @@ + from ansible.module_utils.urls import fetch_url, urllib_error, ConnectionError, NoSSLError, httplib + + import pytest +-from mock import MagicMock ++from units.compat.mock import MagicMock + + + class AnsibleModuleExit(Exception): +diff --git a/test/units/modules/test_apt.py b/test/units/modules/test_apt.py +index 78dbbadea6cf35..20e056ffd0821e 100644 +--- a/test/units/modules/test_apt.py ++++ b/test/units/modules/test_apt.py +@@ -4,8 +4,7 @@ + import collections + import sys + +-import mock +- ++from units.compat.mock import Mock + from units.compat import unittest + + try: +@@ -41,14 +40,14 @@ def test_version_wildcard(self): + + def test_pkgname_wildcard_version_wildcard(self): + foo = ["apt*=1.0*"] +- m_mock = mock.Mock() ++ m_mock = Mock() + self.assertEqual( + expand_pkgspec_from_fnmatches(m_mock, foo, self.fake_cache), + ['apt', 'apt-utils']) + + def test_pkgname_expands(self): + foo = ["apt*"] +- m_mock = mock.Mock() ++ m_mock = Mock() + self.assertEqual( + expand_pkgspec_from_fnmatches(m_mock, foo, self.fake_cache), + ["apt", "apt-utils"]) +diff --git a/test/units/modules/test_apt_key.py b/test/units/modules/test_apt_key.py +index 39339d76d28c06..37cd53b62d2c21 100644 +--- a/test/units/modules/test_apt_key.py ++++ b/test/units/modules/test_apt_key.py +@@ -3,8 +3,7 @@ + + import os + +-import mock +- ++from units.compat.mock import patch, Mock + from units.compat import unittest + + from ansible.modules import apt_key +@@ -16,11 +15,11 @@ def returnc(x): + + class AptKeyTestCase(unittest.TestCase): + +- @mock.patch.object(apt_key, 'apt_key_bin', '/usr/bin/apt-key') +- @mock.patch.object(apt_key, 'lang_env', returnc) +- @mock.patch.dict(os.environ, {'HTTP_PROXY': 'proxy.example.com'}) ++ @patch.object(apt_key, 'apt_key_bin', '/usr/bin/apt-key') ++ @patch.object(apt_key, 'lang_env', returnc) ++ @patch.dict(os.environ, {'HTTP_PROXY': 'proxy.example.com'}) + def test_import_key_with_http_proxy(self): +- m_mock = mock.Mock() ++ m_mock = Mock() + m_mock.run_command.return_value = (0, '', '') + apt_key.import_key( + m_mock, keyring=None, keyserver='keyserver.example.com', +diff --git a/test/units/modules/test_async_wrapper.py b/test/units/modules/test_async_wrapper.py +index eacb9361a4003f..37b1fda374bc46 100644 +--- a/test/units/modules/test_async_wrapper.py ++++ b/test/units/modules/test_async_wrapper.py +@@ -11,7 +11,7 @@ + + import pytest + +-from mock import patch, MagicMock ++from units.compat.mock import patch, MagicMock + from ansible.modules import async_wrapper + + from pprint import pprint +diff --git a/test/units/modules/test_hostname.py b/test/units/modules/test_hostname.py +index 804ecf74a7ca8a..9050fd04b0277e 100644 +--- a/test/units/modules/test_hostname.py ++++ b/test/units/modules/test_hostname.py +@@ -5,7 +5,7 @@ + import shutil + import tempfile + +-from mock import patch, MagicMock, mock_open ++from units.compat.mock import patch, MagicMock, mock_open + from ansible.module_utils import basic + from ansible.module_utils.common._utils import get_all_subclasses + from ansible.modules import hostname +diff --git a/test/units/modules/test_iptables.py b/test/units/modules/test_iptables.py +index 5953334b6a8c57..265e770ac2829e 100644 +--- a/test/units/modules/test_iptables.py ++++ b/test/units/modules/test_iptables.py +@@ -1,7 +1,7 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-from mock import patch ++from units.compat.mock import patch + from ansible.module_utils import basic + from ansible.modules import iptables + from units.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args +diff --git a/test/units/modules/test_service_facts.py b/test/units/modules/test_service_facts.py +index 3a180dc9c51eec..07f6827e02ff3f 100644 +--- a/test/units/modules/test_service_facts.py ++++ b/test/units/modules/test_service_facts.py +@@ -6,7 +6,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch ++from units.compat.mock import patch + + from ansible.module_utils import basic + from ansible.modules.service_facts import AIXScanService +diff --git a/test/units/modules/utils.py b/test/units/modules/utils.py +index 92f4ceabce7ffe..6d169e36f0f0ec 100644 +--- a/test/units/modules/utils.py ++++ b/test/units/modules/utils.py +@@ -4,7 +4,7 @@ + import json + + from units.compat import unittest +-from mock import patch ++from units.compat.mock import patch + from ansible.module_utils import basic + from ansible.module_utils._text import to_bytes + diff --git a/47e1cc38fdb656d359e9cbb8a10053997b8f68ba.patch b/47e1cc38fdb656d359e9cbb8a10053997b8f68ba.patch new file mode 100644 index 0000000..bf51ab9 --- /dev/null +++ b/47e1cc38fdb656d359e9cbb8a10053997b8f68ba.patch @@ -0,0 +1,674 @@ +From 47e1cc38fdb656d359e9cbb8a10053997b8f68ba Mon Sep 17 00:00:00 2001 +From: Matt Clay +Date: Mon, 23 May 2022 11:04:56 -0700 +Subject: [PATCH] [stable-2.13] Use unittest.mock instead of mock. (#77883) + +This can only be done for controller tests. +(cherry picked from commit 3a9a23fb1a7e617479d0ae72dadba0f7a739d13a) + +Co-authored-by: Matt Clay +--- + test/units/_vendor/test_vendor.py | 2 +- + test/units/cli/test_cli.py | 2 +- + test/units/cli/test_console.py | 2 +- + test/units/cli/test_galaxy.py | 2 +- + test/units/cli/test_vault.py | 2 +- + test/units/errors/test_errors.py | 2 +- + test/units/executor/test_interpreter_discovery.py | 2 +- + test/units/executor/test_play_iterator.py | 2 +- + test/units/executor/test_playbook_executor.py | 2 +- + test/units/executor/test_task_executor.py | 4 ++-- + test/units/executor/test_task_queue_manager_callbacks.py | 2 +- + test/units/executor/test_task_result.py | 2 +- + test/units/galaxy/test_api.py | 2 +- + test/units/galaxy/test_collection.py | 2 +- + test/units/galaxy/test_collection_install.py | 2 +- + test/units/galaxy/test_token.py | 2 +- + test/units/mock/path.py | 2 +- + test/units/parsing/test_dataloader.py | 2 +- + test/units/parsing/vault/test_vault.py | 2 +- + test/units/parsing/vault/test_vault_editor.py | 2 +- + test/units/playbook/role/test_include_role.py | 2 +- + test/units/playbook/role/test_role.py | 2 +- + test/units/playbook/test_conditional.py | 2 +- + test/units/playbook/test_helpers.py | 2 +- + test/units/playbook/test_included_file.py | 2 +- + test/units/playbook/test_task.py | 2 +- + test/units/plugins/action/test_action.py | 2 +- + test/units/plugins/action/test_gather_facts.py | 2 +- + test/units/plugins/action/test_raw.py | 2 +- + test/units/plugins/cache/test_cache.py | 2 +- + test/units/plugins/callback/test_callback.py | 2 +- + test/units/plugins/connection/test_psrp.py | 2 +- + test/units/plugins/connection/test_ssh.py | 2 +- + test/units/plugins/connection/test_winrm.py | 2 +- + test/units/plugins/inventory/test_inventory.py | 2 +- + test/units/plugins/inventory/test_script.py | 2 +- + test/units/plugins/lookup/test_password.py | 2 +- + test/units/plugins/strategy/test_linear.py | 2 +- + test/units/plugins/strategy/test_strategy.py | 2 +- + test/units/plugins/test_plugins.py | 2 +- + test/units/template/test_templar.py | 2 +- + test/units/template/test_vars.py | 2 +- + test/units/utils/collection_loader/test_collection_loader.py | 2 +- + test/units/utils/display/test_broken_cowsay.py | 2 +- + test/units/utils/test_display.py | 2 +- + test/units/utils/test_vars.py | 2 +- + test/units/vars/test_variable_manager.py | 2 +- + 47 files changed, 48 insertions(+), 48 deletions(-) + +diff --git a/test/units/_vendor/test_vendor.py b/test/units/_vendor/test_vendor.py +index cda0279d60e5fe..84b850e2d88886 100644 +--- a/test/units/_vendor/test_vendor.py ++++ b/test/units/_vendor/test_vendor.py +@@ -9,7 +9,7 @@ + import pytest + import sys + +-from mock import MagicMock, NonCallableMagicMock, patch ++from unittest.mock import MagicMock, NonCallableMagicMock, patch + + + def reset_internal_vendor_package(): +diff --git a/test/units/cli/test_cli.py b/test/units/cli/test_cli.py +index 262859552cf447..79c2b8fb988c31 100644 +--- a/test/units/cli/test_cli.py ++++ b/test/units/cli/test_cli.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + + from units.mock.loader import DictDataLoader + +diff --git a/test/units/cli/test_console.py b/test/units/cli/test_console.py +index fb477bf3920e8a..4fc05dd36aa46c 100644 +--- a/test/units/cli/test_console.py ++++ b/test/units/cli/test_console.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch ++from unittest.mock import patch + + from ansible.cli.console import ConsoleCLI + +diff --git a/test/units/cli/test_galaxy.py b/test/units/cli/test_galaxy.py +index 1a6bfe04b60762..3b975beedd8bc2 100644 +--- a/test/units/cli/test_galaxy.py ++++ b/test/units/cli/test_galaxy.py +@@ -41,7 +41,7 @@ + from ansible.utils import context_objects as co + from ansible.utils.display import Display + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + + + @pytest.fixture(autouse='function') +diff --git a/test/units/cli/test_vault.py b/test/units/cli/test_vault.py +index 76ffba2f42428f..2304f4d5cd1aeb 100644 +--- a/test/units/cli/test_vault.py ++++ b/test/units/cli/test_vault.py +@@ -24,7 +24,7 @@ + import pytest + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + from units.mock.vault_helper import TextVaultSecret + + from ansible import context, errors +diff --git a/test/units/errors/test_errors.py b/test/units/errors/test_errors.py +index deb3dc0b1c76a1..005be29e88c174 100644 +--- a/test/units/errors/test_errors.py ++++ b/test/units/errors/test_errors.py +@@ -21,7 +21,7 @@ + + + from units.compat import unittest +-from mock import mock_open, patch ++from unittest.mock import mock_open, patch + from ansible.errors import AnsibleError + from ansible.parsing.yaml.objects import AnsibleBaseYAMLObject + +diff --git a/test/units/executor/test_interpreter_discovery.py b/test/units/executor/test_interpreter_discovery.py +index 5efdd37894c937..43db59505636c8 100644 +--- a/test/units/executor/test_interpreter_discovery.py ++++ b/test/units/executor/test_interpreter_discovery.py +@@ -6,7 +6,7 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-from mock import MagicMock ++from unittest.mock import MagicMock + + from ansible.executor.interpreter_discovery import discover_interpreter + from ansible.module_utils._text import to_text +diff --git a/test/units/executor/test_play_iterator.py b/test/units/executor/test_play_iterator.py +index 3ced9e3cceeeb0..14c28135ac864b 100644 +--- a/test/units/executor/test_play_iterator.py ++++ b/test/units/executor/test_play_iterator.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + + from ansible.executor.play_iterator import HostState, PlayIterator, IteratingStates, FailedStates + from ansible.playbook import Playbook +diff --git a/test/units/executor/test_playbook_executor.py b/test/units/executor/test_playbook_executor.py +index 350f7c2dcf8431..6032dbb2abdbec 100644 +--- a/test/units/executor/test_playbook_executor.py ++++ b/test/units/executor/test_playbook_executor.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import MagicMock ++from unittest.mock import MagicMock + + from ansible.executor.playbook_executor import PlaybookExecutor + from ansible.playbook import Playbook +diff --git a/test/units/executor/test_task_executor.py b/test/units/executor/test_task_executor.py +index 30d609a1aba228..29eb7898ce3018 100644 +--- a/test/units/executor/test_task_executor.py ++++ b/test/units/executor/test_task_executor.py +@@ -19,10 +19,10 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-import mock ++from unittest import mock + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + from ansible.errors import AnsibleError + from ansible.executor.task_executor import TaskExecutor, remove_omit + from ansible.plugins.loader import action_loader, lookup_loader +diff --git a/test/units/executor/test_task_queue_manager_callbacks.py b/test/units/executor/test_task_queue_manager_callbacks.py +index b6b1159d174021..c63385dc8b6dd2 100644 +--- a/test/units/executor/test_task_queue_manager_callbacks.py ++++ b/test/units/executor/test_task_queue_manager_callbacks.py +@@ -19,7 +19,7 @@ + from __future__ import (absolute_import, division, print_function) + + from units.compat import unittest +-from mock import MagicMock ++from unittest.mock import MagicMock + + from ansible.executor.task_queue_manager import TaskQueueManager + from ansible.playbook import Playbook +diff --git a/test/units/executor/test_task_result.py b/test/units/executor/test_task_result.py +index ee5c71986f98e1..8b79571f23e9d7 100644 +--- a/test/units/executor/test_task_result.py ++++ b/test/units/executor/test_task_result.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + + from ansible.executor.task_result import TaskResult + +diff --git a/test/units/galaxy/test_api.py b/test/units/galaxy/test_api.py +index 733f99b5718396..e7bee589c0f90a 100644 +--- a/test/units/galaxy/test_api.py ++++ b/test/units/galaxy/test_api.py +@@ -16,7 +16,7 @@ + import time + + from io import BytesIO, StringIO +-from mock import MagicMock ++from unittest.mock import MagicMock + + import ansible.constants as C + from ansible import context +diff --git a/test/units/galaxy/test_collection.py b/test/units/galaxy/test_collection.py +index 53d042fe60236f..4cfca394464104 100644 +--- a/test/units/galaxy/test_collection.py ++++ b/test/units/galaxy/test_collection.py +@@ -15,7 +15,7 @@ + + from hashlib import sha256 + from io import BytesIO +-from mock import MagicMock, mock_open, patch ++from unittest.mock import MagicMock, mock_open, patch + + import ansible.constants as C + from ansible import context +diff --git a/test/units/galaxy/test_collection_install.py b/test/units/galaxy/test_collection_install.py +index e34472f2e68c60..7525a194ca62eb 100644 +--- a/test/units/galaxy/test_collection_install.py ++++ b/test/units/galaxy/test_collection_install.py +@@ -17,7 +17,7 @@ + import yaml + + from io import BytesIO, StringIO +-from mock import MagicMock, patch ++from unittest.mock import MagicMock, patch + from unittest import mock + + import ansible.module_utils.six.moves.urllib.error as urllib_error +diff --git a/test/units/galaxy/test_token.py b/test/units/galaxy/test_token.py +index 98dec5bfabea16..24af38631420f1 100644 +--- a/test/units/galaxy/test_token.py ++++ b/test/units/galaxy/test_token.py +@@ -8,7 +8,7 @@ + + import os + import pytest +-from mock import MagicMock ++from unittest.mock import MagicMock + + import ansible.constants as C + from ansible.cli.galaxy import GalaxyCLI, SERVER_DEF +diff --git a/test/units/mock/path.py b/test/units/mock/path.py +index dc51a143cb3453..c24ddf42dccade 100644 +--- a/test/units/mock/path.py ++++ b/test/units/mock/path.py +@@ -1,7 +1,7 @@ + from __future__ import (absolute_import, division, print_function) + __metaclass__ = type + +-from mock import MagicMock ++from unittest.mock import MagicMock + from ansible.utils.path import unfrackpath + + +diff --git a/test/units/parsing/test_dataloader.py b/test/units/parsing/test_dataloader.py +index ed365b130f121a..9ec49a8d319c09 100644 +--- a/test/units/parsing/test_dataloader.py ++++ b/test/units/parsing/test_dataloader.py +@@ -22,7 +22,7 @@ + import os + + from units.compat import unittest +-from mock import patch, mock_open ++from unittest.mock import patch, mock_open + from ansible.errors import AnsibleParserError, yaml_strings, AnsibleFileNotFound + from ansible.parsing.vault import AnsibleVaultError + from ansible.module_utils._text import to_text +diff --git a/test/units/parsing/vault/test_vault.py b/test/units/parsing/vault/test_vault.py +index f92d451c5eeeea..7afd3560080b30 100644 +--- a/test/units/parsing/vault/test_vault.py ++++ b/test/units/parsing/vault/test_vault.py +@@ -30,7 +30,7 @@ + import pytest + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + + from ansible import errors + from ansible.module_utils import six +diff --git a/test/units/parsing/vault/test_vault_editor.py b/test/units/parsing/vault/test_vault_editor.py +index 3f19b893e8235f..77509f08aa4ea9 100644 +--- a/test/units/parsing/vault/test_vault_editor.py ++++ b/test/units/parsing/vault/test_vault_editor.py +@@ -27,7 +27,7 @@ + import pytest + + from units.compat import unittest +-from mock import patch ++from unittest.mock import patch + + from ansible import errors + from ansible.parsing import vault +diff --git a/test/units/playbook/role/test_include_role.py b/test/units/playbook/role/test_include_role.py +index 79821b40f324eb..5e7625ba14c1dc 100644 +--- a/test/units/playbook/role/test_include_role.py ++++ b/test/units/playbook/role/test_include_role.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch ++from unittest.mock import patch + + from ansible.playbook import Play + from ansible.playbook.role_include import IncludeRole +diff --git a/test/units/playbook/role/test_role.py b/test/units/playbook/role/test_role.py +index dacbc79cb2a8db..5d47631fe26400 100644 +--- a/test/units/playbook/role/test_role.py ++++ b/test/units/playbook/role/test_role.py +@@ -22,7 +22,7 @@ + from collections.abc import Container + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + + from ansible.errors import AnsibleError, AnsibleParserError + from ansible.playbook.block import Block +diff --git a/test/units/playbook/test_conditional.py b/test/units/playbook/test_conditional.py +index 17284ca225865e..03ab3b7fa6a7ef 100644 +--- a/test/units/playbook/test_conditional.py ++++ b/test/units/playbook/test_conditional.py +@@ -3,7 +3,7 @@ + + from units.compat import unittest + from units.mock.loader import DictDataLoader +-from mock import MagicMock ++from unittest.mock import MagicMock + + from ansible.template import Templar + from ansible import errors +diff --git a/test/units/playbook/test_helpers.py b/test/units/playbook/test_helpers.py +index a921a727ccd097..d171bc380becdf 100644 +--- a/test/units/playbook/test_helpers.py ++++ b/test/units/playbook/test_helpers.py +@@ -22,7 +22,7 @@ + import os + + from units.compat import unittest +-from mock import MagicMock ++from unittest.mock import MagicMock + from units.mock.loader import DictDataLoader + + from ansible import errors +diff --git a/test/units/playbook/test_included_file.py b/test/units/playbook/test_included_file.py +index bf79b9275fa093..7341dffa6b76e6 100644 +--- a/test/units/playbook/test_included_file.py ++++ b/test/units/playbook/test_included_file.py +@@ -23,7 +23,7 @@ + + import pytest + +-from mock import MagicMock ++from unittest.mock import MagicMock + from units.mock.loader import DictDataLoader + + from ansible.playbook.block import Block +diff --git a/test/units/playbook/test_task.py b/test/units/playbook/test_task.py +index 53a66705013c7a..070d7aa761175e 100644 +--- a/test/units/playbook/test_task.py ++++ b/test/units/playbook/test_task.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import patch ++from unittest.mock import patch + from ansible.playbook.task import Task + from ansible.parsing.yaml import objects + from ansible import errors +diff --git a/test/units/plugins/action/test_action.py b/test/units/plugins/action/test_action.py +index 70885181f74008..78c6fe057194c7 100644 +--- a/test/units/plugins/action/test_action.py ++++ b/test/units/plugins/action/test_action.py +@@ -25,7 +25,7 @@ + + from ansible import constants as C + from units.compat import unittest +-from mock import patch, MagicMock, mock_open ++from unittest.mock import patch, MagicMock, mock_open + + from ansible.errors import AnsibleError, AnsibleAuthenticationFailure + from ansible.module_utils.six import text_type +diff --git a/test/units/plugins/action/test_gather_facts.py b/test/units/plugins/action/test_gather_facts.py +index e8a607b7f8cd6a..20225aa95889bd 100644 +--- a/test/units/plugins/action/test_gather_facts.py ++++ b/test/units/plugins/action/test_gather_facts.py +@@ -19,7 +19,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import MagicMock, patch ++from unittest.mock import MagicMock, patch + + from ansible import constants as C + from ansible.playbook.task import Task +diff --git a/test/units/plugins/action/test_raw.py b/test/units/plugins/action/test_raw.py +index da21638511673f..33480516d7391d 100644 +--- a/test/units/plugins/action/test_raw.py ++++ b/test/units/plugins/action/test_raw.py +@@ -22,7 +22,7 @@ + + from ansible.errors import AnsibleActionFail + from units.compat import unittest +-from mock import MagicMock, Mock ++from unittest.mock import MagicMock, Mock + from ansible.plugins.action.raw import ActionModule + from ansible.playbook.task import Task + from ansible.plugins.loader import connection_loader +diff --git a/test/units/plugins/cache/test_cache.py b/test/units/plugins/cache/test_cache.py +index d0a39f39d3f2dd..9fdff1f644f97c 100644 +--- a/test/units/plugins/cache/test_cache.py ++++ b/test/units/plugins/cache/test_cache.py +@@ -23,7 +23,7 @@ + import shutil + import tempfile + +-import mock ++from unittest import mock + + from units.compat import unittest + from ansible.errors import AnsibleError +diff --git a/test/units/plugins/callback/test_callback.py b/test/units/plugins/callback/test_callback.py +index 81ee3745e800ea..ccfa4658e54585 100644 +--- a/test/units/plugins/callback/test_callback.py ++++ b/test/units/plugins/callback/test_callback.py +@@ -25,7 +25,7 @@ + import types + + from units.compat import unittest +-from mock import MagicMock ++from unittest.mock import MagicMock + + from ansible.executor.task_result import TaskResult + from ansible.inventory.host import Host +diff --git a/test/units/plugins/connection/test_psrp.py b/test/units/plugins/connection/test_psrp.py +index 73516cc60bc3f1..38052e81d3854b 100644 +--- a/test/units/plugins/connection/test_psrp.py ++++ b/test/units/plugins/connection/test_psrp.py +@@ -10,7 +10,7 @@ + import sys + + from io import StringIO +-from mock import MagicMock ++from unittest.mock import MagicMock + + from ansible.playbook.play_context import PlayContext + from ansible.plugins.loader import connection_loader +diff --git a/test/units/plugins/connection/test_ssh.py b/test/units/plugins/connection/test_ssh.py +index e7f4dd1271a4ff..662dff91928602 100644 +--- a/test/units/plugins/connection/test_ssh.py ++++ b/test/units/plugins/connection/test_ssh.py +@@ -27,7 +27,7 @@ + from ansible import constants as C + from ansible.errors import AnsibleAuthenticationFailure + from units.compat import unittest +-from mock import patch, MagicMock, PropertyMock ++from unittest.mock import patch, MagicMock, PropertyMock + from ansible.errors import AnsibleError, AnsibleConnectionFailure, AnsibleFileNotFound + from ansible.module_utils.compat.selectors import SelectorKey, EVENT_READ + from ansible.module_utils.six.moves import shlex_quote +diff --git a/test/units/plugins/connection/test_winrm.py b/test/units/plugins/connection/test_winrm.py +index c3245ccb0107d0..cb52814b86acc0 100644 +--- a/test/units/plugins/connection/test_winrm.py ++++ b/test/units/plugins/connection/test_winrm.py +@@ -12,7 +12,7 @@ + + from io import StringIO + +-from mock import MagicMock ++from unittest.mock import MagicMock + from ansible.errors import AnsibleConnectionFailure + from ansible.module_utils._text import to_bytes + from ansible.playbook.play_context import PlayContext +diff --git a/test/units/plugins/inventory/test_inventory.py b/test/units/plugins/inventory/test_inventory.py +index 08148f8b625832..df246073659761 100644 +--- a/test/units/plugins/inventory/test_inventory.py ++++ b/test/units/plugins/inventory/test_inventory.py +@@ -22,7 +22,7 @@ + import string + import textwrap + +-import mock ++from unittest import mock + + from ansible import constants as C + from units.compat import unittest +diff --git a/test/units/plugins/inventory/test_script.py b/test/units/plugins/inventory/test_script.py +index 1a00946c569279..9f75199f1632bd 100644 +--- a/test/units/plugins/inventory/test_script.py ++++ b/test/units/plugins/inventory/test_script.py +@@ -22,7 +22,7 @@ + __metaclass__ = type + + import pytest +-import mock ++from unittest import mock + + from ansible import constants as C + from ansible.errors import AnsibleError +diff --git a/test/units/plugins/lookup/test_password.py b/test/units/plugins/lookup/test_password.py +index c496ee6ed13a34..73b50418e18c2c 100644 +--- a/test/units/plugins/lookup/test_password.py ++++ b/test/units/plugins/lookup/test_password.py +@@ -32,7 +32,7 @@ + from units.mock.loader import DictDataLoader + + from units.compat import unittest +-from mock import mock_open, patch ++from unittest.mock import mock_open, patch + from ansible.errors import AnsibleError + from ansible.module_utils.six import text_type + from ansible.module_utils.six.moves import builtins +diff --git a/test/units/plugins/strategy/test_linear.py b/test/units/plugins/strategy/test_linear.py +index 3bce485613f9c3..2574e84fff3420 100644 +--- a/test/units/plugins/strategy/test_linear.py ++++ b/test/units/plugins/strategy/test_linear.py +@@ -7,7 +7,7 @@ + + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + + from ansible.executor.play_iterator import PlayIterator + from ansible.playbook import Playbook +diff --git a/test/units/plugins/strategy/test_strategy.py b/test/units/plugins/strategy/test_strategy.py +index 750e80690645a8..bc4bb545154c99 100644 +--- a/test/units/plugins/strategy/test_strategy.py ++++ b/test/units/plugins/strategy/test_strategy.py +@@ -23,7 +23,7 @@ + import uuid + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + from ansible.executor.process.worker import WorkerProcess + from ansible.executor.task_queue_manager import TaskQueueManager + from ansible.executor.task_result import TaskResult +diff --git a/test/units/plugins/test_plugins.py b/test/units/plugins/test_plugins.py +index 975fa420b155f8..46cd582d352ce3 100644 +--- a/test/units/plugins/test_plugins.py ++++ b/test/units/plugins/test_plugins.py +@@ -23,7 +23,7 @@ + import os + + from units.compat import unittest +-from mock import patch, MagicMock ++from unittest.mock import patch, MagicMock + from ansible.plugins.loader import PluginLoader, PluginPathContext + + +diff --git a/test/units/template/test_templar.py b/test/units/template/test_templar.py +index e922f95f36a1de..6747f768313c1f 100644 +--- a/test/units/template/test_templar.py ++++ b/test/units/template/test_templar.py +@@ -22,7 +22,7 @@ + from jinja2.runtime import Context + + from units.compat import unittest +-from mock import patch ++from unittest.mock import patch + + from ansible import constants as C + from ansible.errors import AnsibleError, AnsibleUndefinedVariable +diff --git a/test/units/template/test_vars.py b/test/units/template/test_vars.py +index 3e04ba2fab4288..514104f23bf5a3 100644 +--- a/test/units/template/test_vars.py ++++ b/test/units/template/test_vars.py +@@ -20,7 +20,7 @@ + __metaclass__ = type + + from units.compat import unittest +-from mock import MagicMock ++from unittest.mock import MagicMock + + from ansible.template.vars import AnsibleJ2Vars + +diff --git a/test/units/utils/collection_loader/test_collection_loader.py b/test/units/utils/collection_loader/test_collection_loader.py +index 3ae04cbd100a7c..f7050dcd6d047f 100644 +--- a/test/units/utils/collection_loader/test_collection_loader.py ++++ b/test/units/utils/collection_loader/test_collection_loader.py +@@ -17,7 +17,7 @@ + _get_collection_name_from_path, _get_collection_role_path, _get_collection_metadata, _iter_modules_impl + ) + from ansible.utils.collection_loader._collection_config import _EventSource +-from mock import MagicMock, NonCallableMagicMock, patch ++from unittest.mock import MagicMock, NonCallableMagicMock, patch + + + # fixture to ensure we always clean up the import stuff when we're done +diff --git a/test/units/utils/display/test_broken_cowsay.py b/test/units/utils/display/test_broken_cowsay.py +index e93065d8e01f14..d888010ae53004 100644 +--- a/test/units/utils/display/test_broken_cowsay.py ++++ b/test/units/utils/display/test_broken_cowsay.py +@@ -8,7 +8,7 @@ + + + from ansible.utils.display import Display +-from mock import MagicMock ++from unittest.mock import MagicMock + + + def test_display_with_fake_cowsay_binary(capsys, mocker): +diff --git a/test/units/utils/test_display.py b/test/units/utils/test_display.py +index 8807b81675b060..4883a5becc906b 100644 +--- a/test/units/utils/test_display.py ++++ b/test/units/utils/test_display.py +@@ -5,7 +5,7 @@ + from __future__ import absolute_import, division, print_function + __metaclass__ = type + +-from mock import MagicMock ++from unittest.mock import MagicMock + + import pytest + +diff --git a/test/units/utils/test_vars.py b/test/units/utils/test_vars.py +index 1df0eab32bb310..9be33de429a9ae 100644 +--- a/test/units/utils/test_vars.py ++++ b/test/units/utils/test_vars.py +@@ -22,7 +22,7 @@ + + from collections import defaultdict + +-import mock ++from unittest import mock + + from units.compat import unittest + from ansible.errors import AnsibleError +diff --git a/test/units/vars/test_variable_manager.py b/test/units/vars/test_variable_manager.py +index fa68fd3bdbcf1e..67ec120b1da958 100644 +--- a/test/units/vars/test_variable_manager.py ++++ b/test/units/vars/test_variable_manager.py +@@ -22,7 +22,7 @@ + import os + + from units.compat import unittest +-from mock import MagicMock, patch ++from unittest.mock import MagicMock, patch + from ansible.inventory.manager import InventoryManager + from ansible.module_utils.six import iteritems + from ansible.playbook.play import Play diff --git a/77952.patch b/77952.patch new file mode 100644 index 0000000..7ca8647 --- /dev/null +++ b/77952.patch @@ -0,0 +1,63 @@ +From 0ea18ecb0b7dcbb0b10698f9f2f56667fff5b827 Mon Sep 17 00:00:00 2001 +From: Matt Clay +Date: Wed, 1 Jun 2022 16:02:53 -0700 +Subject: [PATCH] ansible-test - Prefer unittest.mock for core. + +--- + changelogs/fragments/ansible-test-ansible-core-mock.yml | 3 +++ + test/lib/ansible_test/_data/pytest/config/ansible-core.ini | 4 ++++ + .../_data/{pytest.ini => pytest/config/default.ini} | 0 + test/lib/ansible_test/_internal/commands/units/__init__.py | 7 ++++++- + 4 files changed, 13 insertions(+), 1 deletion(-) + create mode 100644 changelogs/fragments/ansible-test-ansible-core-mock.yml + create mode 100644 test/lib/ansible_test/_data/pytest/config/ansible-core.ini + rename test/lib/ansible_test/_data/{pytest.ini => pytest/config/default.ini} (100%) + +diff --git a/changelogs/fragments/ansible-test-ansible-core-mock.yml b/changelogs/fragments/ansible-test-ansible-core-mock.yml +new file mode 100644 +index 00000000000000..86e3ea65461b81 +--- /dev/null ++++ b/changelogs/fragments/ansible-test-ansible-core-mock.yml +@@ -0,0 +1,3 @@ ++minor_changes: ++ - ansible-test - Avoid using the ``mock_use_standalone_module`` setting for ``pytest`` when running ansible-core unit tests. ++ This has no effect on unit tests for collections. +diff --git a/test/lib/ansible_test/_data/pytest/config/ansible-core.ini b/test/lib/ansible_test/_data/pytest/config/ansible-core.ini +new file mode 100644 +index 00000000000000..60575bfe32731d +--- /dev/null ++++ b/test/lib/ansible_test/_data/pytest/config/ansible-core.ini +@@ -0,0 +1,4 @@ ++[pytest] ++xfail_strict = true ++# avoid using 'mock_use_standalone_module = true' so package maintainers can avoid packaging 'mock' ++junit_family = xunit1 +diff --git a/test/lib/ansible_test/_data/pytest.ini b/test/lib/ansible_test/_data/pytest/config/default.ini +similarity index 100% +rename from test/lib/ansible_test/_data/pytest.ini +rename to test/lib/ansible_test/_data/pytest/config/default.ini +diff --git a/test/lib/ansible_test/_internal/commands/units/__init__.py b/test/lib/ansible_test/_internal/commands/units/__init__.py +index bd5b3e2b816e94..ef65df29d45cf8 100644 +--- a/test/lib/ansible_test/_internal/commands/units/__init__.py ++++ b/test/lib/ansible_test/_internal/commands/units/__init__.py +@@ -234,6 +234,11 @@ def command_units(args): # type: (UnitsConfig) -> None + if args.requirements_mode == 'only': + sys.exit() + ++ if data_context().content.is_ansible: ++ config_name = 'ansible-core.ini' ++ else: ++ config_name = 'default.ini' ++ + for test_context, python, paths, env in test_sets: + cmd = [ + 'pytest', +@@ -243,7 +248,7 @@ def command_units(args): # type: (UnitsConfig) -> None + '--color', + 'yes' if args.color else 'no', + '-p', 'no:cacheprovider', +- '-c', os.path.join(ANSIBLE_TEST_DATA_ROOT, 'pytest.ini'), ++ '-c', os.path.join(ANSIBLE_TEST_DATA_ROOT, 'pytest', 'config', config_name), + '--junit-xml', os.path.join(ResultType.JUNIT.path, 'python%s-%s-units.xml' % (python.version, test_context)), + '--strict-markers', # added in pytest 4.5.0 + '--rootdir', data_context().content.root, diff --git a/77961.patch b/77961.patch new file mode 100644 index 0000000..c871854 --- /dev/null +++ b/77961.patch @@ -0,0 +1,96 @@ +From 4cb84c83adee345ad1d5dc9b9b79e8a9b9e6b2be Mon Sep 17 00:00:00 2001 +From: Matt Clay +Date: Thu, 2 Jun 2022 15:34:46 -0700 +Subject: [PATCH] ansible-test - Adjust unit test mock usage. + +--- + .../ansible-test-ansible-core-mock.yml | 3 +-- + .../_data/pytest/config/ansible-core.ini | 4 ---- + .../_data/pytest/config/default.ini | 2 +- + .../_data/pytest/config/legacy.ini | 4 ++++ + .../_internal/commands/units/__init__.py | 20 ++++++++++++++----- + 5 files changed, 21 insertions(+), 12 deletions(-) + delete mode 100644 test/lib/ansible_test/_data/pytest/config/ansible-core.ini + create mode 100644 test/lib/ansible_test/_data/pytest/config/legacy.ini + +diff --git a/changelogs/fragments/ansible-test-ansible-core-mock.yml b/changelogs/fragments/ansible-test-ansible-core-mock.yml +index 86e3ea6546..60ea2d25fd 100644 +--- a/changelogs/fragments/ansible-test-ansible-core-mock.yml ++++ b/changelogs/fragments/ansible-test-ansible-core-mock.yml +@@ -1,3 +1,2 @@ + minor_changes: +- - ansible-test - Avoid using the ``mock_use_standalone_module`` setting for ``pytest`` when running ansible-core unit tests. +- This has no effect on unit tests for collections. ++ - ansible-test - Avoid using the ``mock_use_standalone_module`` setting for unit tests running on Python 3.8 or later. +diff --git a/test/lib/ansible_test/_data/pytest/config/ansible-core.ini b/test/lib/ansible_test/_data/pytest/config/ansible-core.ini +deleted file mode 100644 +index 60575bfe32..0000000000 +--- a/test/lib/ansible_test/_data/pytest/config/ansible-core.ini ++++ /dev/null +@@ -1,4 +0,0 @@ +-[pytest] +-xfail_strict = true +-# avoid using 'mock_use_standalone_module = true' so package maintainers can avoid packaging 'mock' +-junit_family = xunit1 +diff --git a/test/lib/ansible_test/_data/pytest/config/default.ini b/test/lib/ansible_test/_data/pytest/config/default.ini +index b2668dc287..60575bfe32 100644 +--- a/test/lib/ansible_test/_data/pytest/config/default.ini ++++ b/test/lib/ansible_test/_data/pytest/config/default.ini +@@ -1,4 +1,4 @@ + [pytest] + xfail_strict = true +-mock_use_standalone_module = true ++# avoid using 'mock_use_standalone_module = true' so package maintainers can avoid packaging 'mock' + junit_family = xunit1 +diff --git a/test/lib/ansible_test/_data/pytest/config/legacy.ini b/test/lib/ansible_test/_data/pytest/config/legacy.ini +new file mode 100644 +index 0000000000..b2668dc287 +--- /dev/null ++++ b/test/lib/ansible_test/_data/pytest/config/legacy.ini +@@ -0,0 +1,4 @@ ++[pytest] ++xfail_strict = true ++mock_use_standalone_module = true ++junit_family = xunit1 +diff --git a/test/lib/ansible_test/_internal/commands/units/__init__.py b/test/lib/ansible_test/_internal/commands/units/__init__.py +index ef65df29d4..f20e96fd2f 100644 +--- a/test/lib/ansible_test/_internal/commands/units/__init__.py ++++ b/test/lib/ansible_test/_internal/commands/units/__init__.py +@@ -21,6 +21,7 @@ from ...util import ( + ANSIBLE_TEST_DATA_ROOT, + display, + is_subdir, ++ str_to_version, + SubprocessError, + ANSIBLE_LIB_ROOT, + ANSIBLE_TEST_TARGET_ROOT, +@@ -234,12 +235,21 @@ def command_units(args): # type: (UnitsConfig) -> None + if args.requirements_mode == 'only': + sys.exit() + +- if data_context().content.is_ansible: +- config_name = 'ansible-core.ini' +- else: +- config_name = 'default.ini' +- + for test_context, python, paths, env in test_sets: ++ # When using pytest-mock, make sure that features introduced in Python 3.8 are available to older Python versions. ++ # This is done by enabling the mock_use_standalone_module feature, which forces use of mock even when unittest.mock is available. ++ # Later Python versions have not introduced additional unittest.mock features, so use of mock is not needed as of Python 3.8. ++ # If future Python versions introduce new unittest.mock features, they will not be available to older Python versions. ++ # Having the cutoff at Python 3.8 also eases packaging of ansible-core since no supported controller version requires the use of mock. ++ # ++ # NOTE: This only affects use of pytest-mock. ++ # Collection unit tests may directly import mock, which will be provided by ansible-test when it installs requirements using pip. ++ # Although mock is available for ansible-core unit tests, they should import units.compat.mock instead. ++ if str_to_version(python.version) < (3, 8): ++ config_name = 'legacy.ini' ++ else: ++ config_name = 'default.ini' ++ + cmd = [ + 'pytest', + '--forked', +-- +2.35.3 + diff --git a/ansible-core.spec b/ansible-core.spec index c3a0ff3..7a13d19 100644 --- a/ansible-core.spec +++ b/ansible-core.spec @@ -21,6 +21,13 @@ Source: https://github.com/ansible/ansible/archive/v%{version}/%{name}-%{version Patch: 2.10.3-test-patch.patch # Stop using a deprecated cryptography method that is no longer available in F37. Patch: https://github.com/ansible/ansible/pull/77834.patch#/avoid-deprecated-method-unit-tests.patch +# These patches remove the requirement on python3-mock which is deprecated in Fedora. +# They should be part of the next release +Patch: https://github.com/ansible/ansible/commit/47e1cc38fdb656d359e9cbb8a10053997b8f68ba.patch +Patch: https://github.com/ansible/ansible/commit/46a1eb6832ceb49d8d9ca49dffd1cb2497e88316.patch +Patch: https://github.com/ansible/ansible/pull/77952.patch +# This has been modified locally to fix a bug. +Patch: https://github.com/ansible/ansible/pull/77961.patch Url: https://ansible.com BuildArch: noarch @@ -125,10 +132,10 @@ This package installs extensive documentation for ansible-core %global py3_shbang_opts %(echo %{py3_shbang_opts} | sed 's/-s//') %py3_shebang_fix . -# Patch out python3-mock, as per https://fedoraproject.org/wiki/Changes/DeprecatePythonMock. -grep -lEr '^(\s*)import mock' | xargs sed -i 's|^\(\s*\)import mock|\1from unittest import mock|' -grep -lEr '^(\s*)from mock import ' | xargs sed -i 's|^\(\s*\)from mock import |\1from unittest.mock import |' -sed -i '/^mock_use_standalone_module = true$/d' test/lib/ansible_test/_data/pytest.ini +%generate_buildrequires +temp=$(mktemp) +sed '/^mock$/d' test/lib/ansible_test/_data/requirements/units.txt > ${temp} +%pyproject_buildrequires %{?with_tests:${temp} test/units/requirements.txt} %{?with_docs:docs/docsite/requirements.txt} %build