From 2595b42acadc4a441e14f3a40bb518930e956e1e Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Mon, 23 May 2022 12:00:10 -0700 Subject: [PATCH] Prefer unittest.mock over mock. (#77886) --- 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 00000000000..58dc78e0740 --- /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 20bfb01eac1..211d65a22ff 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 os 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 92e2c46e142..f09cecf46ab 100644 --- a/test/units/module_utils/basic/test_filesystem.py +++ b/test/units/module_utils/basic/test_filesystem.py @@ -9,7 +9,7 @@ __metaclass__ = type 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 2d0b8dd0997..6ff4a3bc712 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 @@ __metaclass__ = type 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 79ab971f60c..d1a5f3791e1 100644 --- a/test/units/module_utils/basic/test_imports.py +++ b/test/units/module_utils/basic/test_imports.py @@ -12,7 +12,7 @@ import sys 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 6579bee92d4..3c1afb7d85f 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 @@ __metaclass__ = type 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 600ff6b3ab3..d8557685cdc 100644 --- a/test/units/module_utils/basic/test_selinux.py +++ b/test/units/module_utils/basic/test_selinux.py @@ -11,7 +11,7 @@ import errno 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 774186016ff..159236b75e9 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 tempfile 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 eec8f62cf79..818cb9b18f1 100644 --- a/test/units/module_utils/basic/test_tmpdir.py +++ b/test/units/module_utils/basic/test_tmpdir.py @@ -13,7 +13,7 @@ import tempfile 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 f8fea476ad1..9d9598601e8 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 63101a8120a..18aafe5374d 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 @@ __metaclass__ = type 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 23e620cbf3f..33d3087b14e 100644 --- a/test/units/module_utils/facts/base.py +++ b/test/units/module_utils/facts/base.py @@ -20,7 +20,7 @@ from __future__ import (absolute_import, division, print_function) __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 1d584593487..e3e07e7850c 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 @@ __metaclass__ = type 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 27d45234947..32a3a43d0a9 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 @@ from __future__ import absolute_import, division, print_function __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 79cc4815517..afb698c5718 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 78e5c9605e3..2048ba2a000 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 @@ from __future__ import absolute_import, division, print_function __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 517265d3212..7466338eb5a 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 38fb67f42ef..42a72d97200 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 0282a7fcc9d..d27b97f07d2 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 @@ __metaclass__ = type 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 890bddb6938..e2ed2ec0eb1 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 e1d60c3d891..47d88df99e4 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 @@ __metaclass__ = type # 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 a6f12b56476..c48060255e6 100644 --- a/test/units/module_utils/facts/test_collectors.py +++ b/test/units/module_utils/facts/test_collectors.py @@ -21,7 +21,7 @@ __metaclass__ = type 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 a49616fc6fd..c794f031272 100644 --- a/test/units/module_utils/facts/test_facts.py +++ b/test/units/module_utils/facts/test_facts.py @@ -26,7 +26,7 @@ import pytest # 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 663369250f3..c369b610806 100644 --- a/test/units/module_utils/facts/test_sysctl.py +++ b/test/units/module_utils/facts/test_sysctl.py @@ -26,7 +26,7 @@ import pytest # 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 70db047512b..28cb5d31940 100644 --- a/test/units/module_utils/facts/test_utils.py +++ b/test/units/module_utils/facts/test_utils.py @@ -18,7 +18,7 @@ from __future__ import (absolute_import, division, print_function) __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 ebb6de56de6..648e46aafe3 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 (Request, open_url, urllib_request, HAS_SS 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 94f2e1bc91c..266c943d9ab 100644 --- a/test/units/module_utils/urls/test_fetch_url.py +++ b/test/units/module_utils/urls/test_fetch_url.py @@ -14,7 +14,7 @@ from ansible.module_utils.six.moves.http_client import HTTPMessage 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 78dbbadea6c..20e056ffd08 100644 --- a/test/units/modules/test_apt.py +++ b/test/units/modules/test_apt.py @@ -4,8 +4,7 @@ __metaclass__ = type import collections import sys -import mock - +from units.compat.mock import Mock from units.compat import unittest try: @@ -41,14 +40,14 @@ class AptExpandPkgspecTestCase(unittest.TestCase): 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 39339d76d28..37cd53b62d2 100644 --- a/test/units/modules/test_apt_key.py +++ b/test/units/modules/test_apt_key.py @@ -3,8 +3,7 @@ __metaclass__ = type 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 eacb9361a40..37b1fda374b 100644 --- a/test/units/modules/test_async_wrapper.py +++ b/test/units/modules/test_async_wrapper.py @@ -11,7 +11,7 @@ import tempfile 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 804ecf74a7c..9050fd04b02 100644 --- a/test/units/modules/test_hostname.py +++ b/test/units/modules/test_hostname.py @@ -5,7 +5,7 @@ import os 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 5953334b6a8..265e770ac28 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 3a180dc9c51..07f6827e02f 100644 --- a/test/units/modules/test_service_facts.py +++ b/test/units/modules/test_service_facts.py @@ -6,7 +6,7 @@ from __future__ import absolute_import, division, print_function __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 92f4ceabce7..6d169e36f0f 100644 --- a/test/units/modules/utils.py +++ b/test/units/modules/utils.py @@ -4,7 +4,7 @@ __metaclass__ = type 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