Use unittest.mock instead of mock

The mock third party library was needed for mock support in py2
runtimes. Since we now only support py36 and later, we can use the
standard lib unittest.mock module instead.

Also added and enabled a hacking check that would have caught this.

Change-Id: Idb10f84fd32c50db24f844352cb85de452181439
This commit is contained in:
Hervé Beraud 2020-06-09 10:50:03 +02:00 committed by Brian Haley
parent c9e9fd9335
commit 6cce3a72ae
4 changed files with 21 additions and 4 deletions

View File

@ -64,7 +64,6 @@ logutils==0.3.5
Mako==1.0.7
MarkupSafe==1.0
mccabe==0.4.0
mock==2.0.0
monotonic==1.4
mox3==0.25.0
msgpack==0.5.6

View File

@ -66,6 +66,8 @@ untranslated_exception_re = re.compile(r"raise (?:\w*)\((.*)\)")
no_eventlet_re = re.compile(r'(import|from)\s+[(]?eventlet')
no_line_continuation_backslash_re = re.compile(r'.*(\\)\n')
no_logging_re = re.compile(r'(import|from)\s+[(]?logging')
import_mock_re = re.compile(r"\bimport[\s]+mock\b")
import_from_mock_re = re.compile(r"\bfrom[\s]+mock[\s]+import\b")
def _translation_checks_not_enforced(filename):
@ -258,3 +260,18 @@ def check_no_logging_imports(logical_line):
if no_logging_re.match(logical_line):
msg = 'O348 Usage of Python logging module not allowed, use oslo_log'
yield logical_line.index('logging'), msg
@core.flake8ext
def check_no_import_mock(logical_line):
"""O349 - Test code must not import mock library.
:param logical_line: The logical line to check.
:returns: None if the logical line passes the check, otherwise a tuple
is yielded that contains the offending index in logical line
and a message describe the check validation failure.
"""
if (import_mock_re.match(logical_line) or
import_from_mock_re.match(logical_line)):
msg = 'O349 Test code must not import mock library, use unittest.mock'
yield 0, msg

View File

@ -13,13 +13,13 @@
# under the License.
import copy
from unittest import mock
from unittest.mock import call
from mock import call
from octavia_lib.api.drivers import exceptions as driver_exceptions
from octavia_lib.common import constants as lib_consts
from octavia.api.drivers.driver_agent import driver_updater
import octavia.tests.unit.base as base
from octavia_lib.api.drivers import exceptions as driver_exceptions
from octavia_lib.common import constants as lib_consts
class TestDriverUpdater(base.TestCase):

View File

@ -190,6 +190,7 @@ extension =
O346 = checks:check_line_continuation_no_backslash
O347 = checks:revert_must_have_kwargs
O348 = checks:check_no_logging_imports
O349 = checks:check_no_import_mock
paths =
./octavia/hacking