From 729cd55527f3778bdcac10e1135e23f420a27efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?= Date: Mon, 9 Oct 2023 12:58:22 +0100 Subject: [PATCH 1/3] Remove usage of mock in favor of unittest.mock --- requirements/pytest.txt | 1 - requirements/static/ci/py3.10/darwin.txt | 2 -- requirements/static/ci/py3.10/freebsd.txt | 2 -- requirements/static/ci/py3.10/linux.txt | 2 -- requirements/static/ci/py3.10/windows.txt | 2 -- requirements/static/ci/py3.11/darwin.txt | 2 -- requirements/static/ci/py3.11/freebsd.txt | 2 -- requirements/static/ci/py3.11/linux.txt | 2 -- requirements/static/ci/py3.11/windows.txt | 2 -- requirements/static/ci/py3.8/freebsd.txt | 2 -- requirements/static/ci/py3.8/linux.txt | 2 -- requirements/static/ci/py3.8/windows.txt | 2 -- requirements/static/ci/py3.9/darwin.txt | 2 -- requirements/static/ci/py3.9/freebsd.txt | 2 -- requirements/static/ci/py3.9/linux.txt | 2 -- requirements/static/ci/py3.9/windows.txt | 2 -- tests/support/mock.py | 17 ++--------------- 17 files changed, 2 insertions(+), 46 deletions(-) diff --git a/requirements/pytest.txt b/requirements/pytest.txt index cafa2ec25a1f..d774f2d40a78 100644 --- a/requirements/pytest.txt +++ b/requirements/pytest.txt @@ -1,4 +1,3 @@ -mock >= 3.0.0 # PyTest docker pytest >= 7.2.0 diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index 2c009ac2623b..b3001dd04e7c 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -239,8 +239,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/darwin.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index 8679b6344497..bda442c77255 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -234,8 +234,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/freebsd.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.10/freebsd.txt diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index d4947890ae6c..a04d8c59776c 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -259,8 +259,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/linux.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 16e3aa1cbf40..16af3c24930e 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -218,8 +218,6 @@ markupsafe==2.1.2 # jinja2 # mako # werkzeug -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index 4a596e9d465f..06de5f931f5c 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -237,8 +237,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/darwin.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index 9e0748b02d65..746b401c19c9 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -232,8 +232,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/freebsd.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.11/freebsd.txt diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index ea1d14dcb367..9c7940e0d48f 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -255,8 +255,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/linux.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index b87b69665f68..2eace25b4dc9 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -216,8 +216,6 @@ markupsafe==2.1.2 # jinja2 # mako # werkzeug -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt diff --git a/requirements/static/ci/py3.8/freebsd.txt b/requirements/static/ci/py3.8/freebsd.txt index 7e3ed54ec5d5..aec6921874f3 100644 --- a/requirements/static/ci/py3.8/freebsd.txt +++ b/requirements/static/ci/py3.8/freebsd.txt @@ -238,8 +238,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/freebsd.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.8/freebsd.txt diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt index cf85eddf7862..2b64292b9e33 100644 --- a/requirements/static/ci/py3.8/linux.txt +++ b/requirements/static/ci/py3.8/linux.txt @@ -263,8 +263,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/linux.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index 61692dc740c5..c92bc1e01b37 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -222,8 +222,6 @@ markupsafe==2.1.2 # jinja2 # mako # werkzeug -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 81bf5659f3d1..e2cb47d4b756 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -239,8 +239,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/darwin.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index 2fef8a457139..bb3d5ba48cad 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -234,8 +234,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/freebsd.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.9/freebsd.txt diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index 20e1779d6706..36d320aa2512 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -261,8 +261,6 @@ markupsafe==2.1.2 # werkzeug mercurial==6.4.4 # via -r requirements/static/ci/linux.in -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index db9f51e024f9..4c378493fb35 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -218,8 +218,6 @@ markupsafe==2.1.2 # jinja2 # mako # werkzeug -mock==5.1.0 - # via -r requirements/pytest.txt more-itertools==9.1.0 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt diff --git a/tests/support/mock.py b/tests/support/mock.py index 2f9970d4b045..731089acbb8f 100644 --- a/tests/support/mock.py +++ b/tests/support/mock.py @@ -7,9 +7,6 @@ Helper module that wraps `mock` and provides some fake objects in order to properly set the function/class decorators and yet skip the test case's execution. - - Note: mock >= 2.0.0 required since unittest.mock does not have - MagicMock.assert_called in Python < 3.6. """ # pylint: disable=unused-import,function-redefined,blacklisted-module,blacklisted-external-module @@ -18,12 +15,10 @@ import errno import fnmatch import sys - -# By these days, we should blowup if mock is not available -import mock # pylint: disable=blacklisted-external-import +import unittest.mock as mock # pylint: disable=no-name-in-module,no-member -from mock import ( +from unittest.mock import ( ANY, DEFAULT, FILTER_DIR, @@ -33,7 +28,6 @@ NonCallableMagicMock, NonCallableMock, PropertyMock, - __version__, call, create_autospec, patch, @@ -42,13 +36,6 @@ import salt.utils.stringutils -# pylint: disable=no-name-in-module,no-member - - -__mock_version = tuple( - int(part) for part in mock.__version__.split(".") if part.isdigit() -) # pylint: disable=no-member - class MockFH: def __init__(self, filename, read_data, *args, **kwargs): From 4c6fae1bb916a576b5c9893f6fc649bcc32546bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?= Date: Mon, 9 Oct 2023 13:41:04 +0100 Subject: [PATCH 2/3] Make pylint happy --- tests/support/mock.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/support/mock.py b/tests/support/mock.py index 731089acbb8f..bcf4a7de713f 100644 --- a/tests/support/mock.py +++ b/tests/support/mock.py @@ -15,7 +15,7 @@ import errno import fnmatch import sys -import unittest.mock as mock +import unittest.mock as mock # pylint: disable=blacklisted-import # pylint: disable=no-name-in-module,no-member from unittest.mock import ( From 9fe69ef5fb209a0828ad8ff0f110cdec12758dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?= Date: Mon, 9 Oct 2023 15:08:42 +0100 Subject: [PATCH 3/3] Fix unit test after switching to unittest.mock --- tests/pytests/unit/cloud/clouds/test_dimensiondata.py | 7 ++----- tests/pytests/unit/cloud/clouds/test_gce.py | 8 ++------ 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/tests/pytests/unit/cloud/clouds/test_dimensiondata.py b/tests/pytests/unit/cloud/clouds/test_dimensiondata.py index e19680500449..3ef2fe2ed7ac 100644 --- a/tests/pytests/unit/cloud/clouds/test_dimensiondata.py +++ b/tests/pytests/unit/cloud/clouds/test_dimensiondata.py @@ -10,9 +10,7 @@ from salt.cloud.clouds import dimensiondata from salt.exceptions import SaltCloudSystemExit from salt.utils.versions import Version -from tests.support.mock import MagicMock -from tests.support.mock import __version__ as mock_version -from tests.support.mock import patch +from tests.support.mock import MagicMock, patch try: import libcloud.security @@ -144,8 +142,7 @@ def test_import(): with patch("salt.config.check_driver_dependencies", return_value=True) as p: get_deps = dimensiondata.get_dependencies() assert get_deps is True - if Version(mock_version) >= Version("2.0.0"): - assert p.call_count >= 1 + assert p.call_count >= 1 def test_provider_matches(): diff --git a/tests/pytests/unit/cloud/clouds/test_gce.py b/tests/pytests/unit/cloud/clouds/test_gce.py index 265818016e80..d70e47d8068e 100644 --- a/tests/pytests/unit/cloud/clouds/test_gce.py +++ b/tests/pytests/unit/cloud/clouds/test_gce.py @@ -11,10 +11,7 @@ from salt.cloud.clouds import gce from salt.exceptions import SaltCloudSystemExit -from salt.utils.versions import Version -from tests.support.mock import MagicMock -from tests.support.mock import __version__ as mock_version -from tests.support.mock import call, patch +from tests.support.mock import MagicMock, call, patch @pytest.fixture @@ -281,8 +278,7 @@ def test_import(): with patch("salt.config.check_driver_dependencies", return_value=True) as p: get_deps = gce.get_dependencies() assert get_deps is True - if Version(mock_version) >= Version("2.0.0"): - p.assert_called_once() + p.assert_called_once() @pytest.mark.parametrize(