From 0fded69cb35c0a66721d3af95247804163280038 Mon Sep 17 00:00:00 2001 From: Adrian Vladu Date: Thu, 9 Nov 2023 15:16:26 +0200 Subject: [PATCH] replace unittest.mock._get_target with mock one Use the original importer for mock. Otherwise, the unit tests that use importlib with context are not running in an isolated manner, leading to various transient failures if `stestr` is not run with the `--isolated` flag. The unittest.mock._get_target has been changed in Python 3.11, by commit: https://github.com/python/cpython/commit/ab7fcc8fbdc11091370deeb000a787fb02f9b13d This change is needed to add support for Python 3.11 and Python 3.12 unit testing. Change-Id: Ic73f5280116673f771f5460cdfd3702f5fbe16b5 --- cloudbaseinit/tests/__init__.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cloudbaseinit/tests/__init__.py b/cloudbaseinit/tests/__init__.py index e69de29b..103ec897 100644 --- a/cloudbaseinit/tests/__init__.py +++ b/cloudbaseinit/tests/__init__.py @@ -0,0 +1,24 @@ +# Copyright 2023 Cloudbase Solutions Srl +# +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from unittest import mock + +from mock import mock as mock_base + +# Note(avladu): use the original mock._get_target for unittest.mock. +# Otherwise, the unit tests that use importlib with context are not +# running in an isolated manner, leading to various transient failures. +mock._get_target = mock_base._get_target