Browse Source

Switch to unittest.mock from mock

In python3 mock is in the unittest package and doesn't need to
install mock directly.

Change-Id: I195ac9739936372042b5d7d3c0c3f3bd82b04107
tags/4.1.0^0
Monty Taylor 3 months ago
parent
commit
ffdf6f10be
9 changed files with 31 additions and 25 deletions
  1. +0
    -1
      lower-constraints.txt
  2. +1
    -1
      oslotest/base.py
  3. +22
    -15
      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. +2
    -1
      oslotest/tests/unit/test_timeout.py
  9. +0
    -1
      requirements.txt

+ 0
- 1
lower-constraints.txt 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
openstackdocstheme==1.18.1
oslo.config==5.2.0


+ 1
- 1
oslotest/base.py 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__)


+ 22
- 15
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,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)

+ 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

from oslotest import output

from six.moves import mock
import testtools

from oslotest import output


class CaptureOutputTest(testtools.TestCase):



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


+ 0
- 1
requirements.txt 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

Loading…
Cancel
Save