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:
ab7fcc8fbd

This change is needed to add support for Python 3.11 and Python 3.12
unit testing.

Change-Id: Ic73f5280116673f771f5460cdfd3702f5fbe16b5
This commit is contained in:
Adrian Vladu 2023-11-09 15:16:26 +02:00
parent 36ed936803
commit 0fded69cb3

View File

@ -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