Merge "Revert "Revert "Switch to unittest.mock from mock"""

This commit is contained in:
Zuul 2020-06-08 09:06:23 +00:00 committed by Gerrit Code Review
commit bc223f9b1d
9 changed files with 31 additions and 25 deletions

View File

@ -15,7 +15,6 @@ keystoneauth1==3.4.0
linecache2==1.0.0
MarkupSafe==1.0
mccabe==0.2.1
mock==2.0.0
netaddr==0.7.18
oslo.config==5.2.0
oslo.i18n==3.15.3

View File

@ -16,6 +16,7 @@
"""Common utilities used in testing"""
import logging
from unittest import mock
import fixtures
from oslotest import createfile
@ -23,7 +24,6 @@ from oslotest import log
from oslotest import output
from oslotest import timeout
from six.moves import mock
import testtools
LOG = logging.getLogger(__name__)

View File

@ -15,9 +15,9 @@
# under the License.
import functools
from unittest import mock
import fixtures
import mock
def _lazy_autospec_method(mocked_method, original_method, eat_self):
@ -72,8 +72,10 @@ class _AutospecMockMixin(object):
original_attr = getattr(original_spec, name)
if callable(original_attr):
# lazily autospec callable attribute.
eat_self = mock.mock._must_skip(original_spec, name,
isinstance(original_spec, type))
eat_self = mock._must_skip(
original_spec, name,
isinstance(original_spec, type)
)
_lazy_autospec_method(attr, original_attr, eat_self)
@ -110,15 +112,17 @@ class MockAutospecFixture(fixtures.Fixture):
super(MockAutospecFixture, self).setUp()
# patch both external and internal usage of Mock / MagicMock.
self.useFixture(fixtures.MonkeyPatch('mock.Mock', _AutospecMock))
self.useFixture(fixtures.MonkeyPatch('mock.mock.Mock', _AutospecMock))
self.useFixture(fixtures.MonkeyPatch('mock.MagicMock',
_AutospecMagicMock))
self.useFixture(fixtures.MonkeyPatch('mock.mock.MagicMock',
_AutospecMagicMock))
self.useFixture(
fixtures.MonkeyPatch(
'unittest.mock.Mock',
_AutospecMock))
self.useFixture(
fixtures.MonkeyPatch(
'unittest.mock.MagicMock',
_AutospecMagicMock))
class _patch(mock.mock._patch):
class _patch(mock._patch):
"""Patch class with working autospec functionality.
Currently, mock.patch functionality doesn't handle the autospec parameter
@ -159,8 +163,11 @@ class _patch(mock.mock._patch):
if autospec:
target = self.getter()
original_attr = getattr(target, self.attribute)
eat_self = mock.mock._must_skip(target, self.attribute,
isinstance(target, type))
eat_self = mock._must_skip(
target,
self.attribute,
isinstance(target, type)
)
new = super(_patch, self).__enter__()
@ -186,11 +193,11 @@ def _safe_attribute_error_wrapper(func):
def patch_mock_module():
"""Replaces the mock.patch class."""
mock.mock._patch = _patch
mock._patch = _patch
# NOTE(claudiub): mock cannot autospec partial functions properly,
# especially those created by LazyLoader objects (scheduler client),
# as it will try to copy the partial function's __name__ (which they do
# not have).
mock.mock._copy_func_details = _safe_attribute_error_wrapper(
mock.mock._copy_func_details)
mock._copy_func_details = _safe_attribute_error_wrapper(
mock._copy_func_details)

View File

@ -17,10 +17,10 @@
import logging
import os
import unittest
from unittest import mock
import fixtures
import six
from six.moves import mock
import testtools
from oslotest import base

View File

@ -15,8 +15,8 @@
# under the License.
import logging
from unittest import mock
from six.moves import mock
import testtools
from oslotest import log

View File

@ -13,8 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
import testtools
from unittest import mock
from oslotest import mock_fixture

View File

@ -13,12 +13,12 @@
# under the License.
import sys
from unittest import mock
import testtools
from oslotest import output
from six.moves import mock
import testtools
class CaptureOutputTest(testtools.TestCase):

View File

@ -12,7 +12,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from six.moves import mock
from unittest import mock
import testtools
from oslotest import timeout

View File

@ -6,4 +6,3 @@ fixtures>=3.0.0 # Apache-2.0/BSD
python-subunit>=1.0.0 # Apache-2.0/BSD
six>=1.10.0 # MIT
testtools>=2.2.0 # MIT
mock>=2.0.0 # BSD