Skip to content

Commit

Permalink
Revert "Switch to unittest.mock from mock"
Browse files Browse the repository at this point in the history
This reverts commit ffdf6f1.

Switching oslotest to unittest.mock has broken a bunch of other
projects because they were (incorrectly) relying on oslotest to
pull in third-party mock for them. Until we get everyone migrated,
let's hold off on doing this for oslotest.

Change-Id: I0bdca39686f3653a56f9e4a554662727e2dbaafd
  • Loading branch information
cybertron committed Apr 3, 2020
1 parent ffdf6f1 commit cdee551
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 31 deletions.
1 change: 1 addition & 0 deletions lower-constraints.txt
Expand Up @@ -15,6 +15,7 @@ keystoneauth1==3.4.0
linecache2==1.0.0
MarkupSafe==1.0
mccabe==0.2.1
mock==2.0.0
netaddr==0.7.18
openstackdocstheme==1.18.1
oslo.config==5.2.0
Expand Down
2 changes: 1 addition & 1 deletion oslotest/base.py
Expand Up @@ -16,14 +16,14 @@
"""Common utilities used in testing"""

import logging
from unittest import mock

import fixtures
from oslotest import createfile
from oslotest import log
from oslotest import output
from oslotest import timeout

from six.moves import mock
import testtools

LOG = logging.getLogger(__name__)
Expand Down
37 changes: 15 additions & 22 deletions oslotest/mock_fixture.py
Expand Up @@ -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):
Expand Down Expand Up @@ -72,10 +72,8 @@ def __getattr__(self, name):
original_attr = getattr(original_spec, name)
if callable(original_attr):
# lazily autospec callable attribute.
eat_self = mock._must_skip(
original_spec, name,
isinstance(original_spec, type)
)
eat_self = mock.mock._must_skip(original_spec, name,
isinstance(original_spec, type))

_lazy_autospec_method(attr, original_attr, eat_self)

Expand Down Expand Up @@ -112,17 +110,15 @@ def setUp(self):
super(MockAutospecFixture, self).setUp()

# patch both external and internal usage of Mock / MagicMock.
self.useFixture(
fixtures.MonkeyPatch(
'unittest.mock.Mock',
_AutospecMock))
self.useFixture(
fixtures.MonkeyPatch(
'unittest.mock.MagicMock',
_AutospecMagicMock))
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))


class _patch(mock._patch):
class _patch(mock.mock._patch):
"""Patch class with working autospec functionality.
Currently, mock.patch functionality doesn't handle the autospec parameter
Expand Down Expand Up @@ -163,11 +159,8 @@ def __enter__(self):
if autospec:
target = self.getter()
original_attr = getattr(target, self.attribute)
eat_self = mock._must_skip(
target,
self.attribute,
isinstance(target, type)
)
eat_self = mock.mock._must_skip(target, self.attribute,
isinstance(target, type))

new = super(_patch, self).__enter__()

Expand All @@ -193,11 +186,11 @@ def wrapper(*args, **kwargs):

def patch_mock_module():
"""Replaces the mock.patch class."""
mock._patch = _patch
mock.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._copy_func_details = _safe_attribute_error_wrapper(
mock._copy_func_details)
mock.mock._copy_func_details = _safe_attribute_error_wrapper(
mock.mock._copy_func_details)
2 changes: 1 addition & 1 deletion oslotest/tests/unit/test_base.py
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion oslotest/tests/unit/test_log.py
Expand Up @@ -15,8 +15,8 @@
# under the License.

import logging
from unittest import mock

from six.moves import mock
import testtools

from oslotest import log
Expand Down
2 changes: 1 addition & 1 deletion oslotest/tests/unit/test_mock_fixture.py
Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions oslotest/tests/unit/test_output.py
Expand Up @@ -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):

Expand Down
3 changes: 1 addition & 2 deletions oslotest/tests/unit/test_timeout.py
Expand Up @@ -12,8 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.

from unittest import mock

from six.moves import mock
import testtools

from oslotest import timeout
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Expand Up @@ -6,3 +6,4 @@ 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

0 comments on commit cdee551

Please sign in to comment.