Browse Source

Revert "Switch to unittest.mock from mock"

This reverts commit ffdf6f10be.

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
tags/4.2.0^0
Ben Nemec 3 months ago
parent
commit
cdee551ae6
9 changed files with 25 additions and 31 deletions
  1. +1
    -0
      lower-constraints.txt
  2. +1
    -1
      oslotest/base.py
  3. +15
    -22
      oslotest/mock_fixture.py
  4. +1
    -1
      oslotest/tests/unit/test_base.py
  5. +1
    -1
      oslotest/tests/unit/test_log.py
  6. +1
    -1
      oslotest/tests/unit/test_mock_fixture.py
  7. +3
    -3
      oslotest/tests/unit/test_output.py
  8. +1
    -2
      oslotest/tests/unit/test_timeout.py
  9. +1
    -0
      requirements.txt

+ 1
- 0
lower-constraints.txt View File

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


+ 1
- 1
oslotest/base.py View File

@@ -16,7 +16,6 @@
"""Common utilities used in testing"""

import logging
from unittest import mock

import fixtures
from oslotest import createfile
@@ -24,6 +23,7 @@ from oslotest import log
from oslotest import output
from oslotest import timeout

from six.moves import mock
import testtools

LOG = logging.getLogger(__name__)


+ 15
- 22
oslotest/mock_fixture.py 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,10 +72,8 @@ class _AutospecMockMixin(object):
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)

@@ -112,17 +110,15 @@ class MockAutospecFixture(fixtures.Fixture):
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
@@ -163,11 +159,8 @@ class _patch(mock._patch):
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__()

@@ -193,11 +186,11 @@ def _safe_attribute_error_wrapper(func):

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)

+ 1
- 1
oslotest/tests/unit/test_base.py 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


+ 1
- 1
oslotest/tests/unit/test_log.py 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


+ 1
- 1
oslotest/tests/unit/test_mock_fixture.py 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



+ 3
- 3
oslotest/tests/unit/test_output.py 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):



+ 1
- 2
oslotest/tests/unit/test_timeout.py View File

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


+ 1
- 0
requirements.txt View File

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

Loading…
Cancel
Save