Use unittest.mock instead of third party lib

mock was adopted into standard python
in version 3.3 [1]. Since manila no longer
supports python2.7, we can use the inbuilt
mock package rather than the third party
lib.

Fix some issues with imports that weren't
following our import conventions of grouping
imports [3]

Add a hacking test to ensure we don't regress
on this.

[1] https://docs.python.org/3/library/unittest.mock.html
[2] http://lists.openstack.org/pipermail/openstack-discuss/2020-March/013281.html
[3] https://docs.openstack.org/hacking/latest/user/hacking.html#imports

Co-Authored-By: Sean McGinnis <sean.mcginnis@gmail.com>
Change-Id: If857a49fbf526983e712282a25d7e8bef5093533
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
This commit is contained in:
Goutham Pacha Ravi 2020-04-16 18:08:51 -07:00
parent 9634bfa733
commit 598223985a
178 changed files with 413 additions and 306 deletions

View File

@ -19,8 +19,9 @@ Manila Specific Commandments
- [M336] Must use a dict comprehension instead of a dict constructor
with a sequence of key-value pairs.
- [M337] Ensure to not use xrange().
- [M354] Use oslo_utils.uuidutils to generate UUID instead of uuid4().
- [M338] Ensure to not use LOG.warn().
- [M339] Ensure 'mock' is not imported/used. Use 'unittest.mock' instead.
- [M354] Use oslo_utils.uuidutils to generate UUID instead of uuid4().
- [M359] Validate that log messages are not translated.
LOG Translations

View File

@ -46,7 +46,6 @@ lxml==3.4.1
Mako==1.0.7
MarkupSafe==1.0
mccabe==0.2.1
mock==2.0.0
monotonic==1.4
mox3==0.25.0
msgpack==0.5.6

View File

@ -53,6 +53,8 @@ dict_constructor_with_list_copy_re = re.compile(r".*\bdict\((\[)?(\(|\[)")
assert_no_xrange_re = re.compile(r"\s*xrange\s*\(")
assert_True = re.compile(r".*assertEqual\(True, .*\)")
no_log_warn = re.compile(r"\s*LOG.warn\(.*")
third_party_mock = re.compile(r"^import.mock")
from_third_party_mock = re.compile(r"^from.mock.import")
class BaseASTChecker(ast.NodeVisitor):
@ -333,3 +335,14 @@ def no_log_warn_check(logical_line):
msg = ("M338: LOG.warn is deprecated, use LOG.warning.")
if re.match(no_log_warn, logical_line):
yield(0, msg)
@core.flake8ext
def no_third_party_mock(logical_line):
# We should only use unittest.mock, not the third party mock library that
# was needed for py2 support.
if (re.match(third_party_mock, logical_line) or
re.match(from_third_party_mock, logical_line)):
msg = ('M339: Unit tests should use the standard library "mock" '
'module, not the third party mock library.')
yield(0, msg)

View File

@ -23,9 +23,9 @@ inline callbacks.
import os
import shutil
from unittest import mock
import fixtures
import mock
from oslo_concurrency import lockutils
from oslo_config import cfg
from oslo_config import fixture as config_fixture

View File

@ -10,13 +10,13 @@
# License for the specific language governing permissions and limitations
# under the License.
import inspect
from unittest import mock
import ddt
import mock
import six
import webob
import inspect
from manila.api.openstack import api_version_request as api_version
from manila.api.openstack import wsgi
from manila import context

View File

@ -17,8 +17,9 @@
Test suites for 'common' code used throughout the OpenStack HTTP API.
"""
from unittest import mock
import ddt
import mock
import webob
import webob.exc

View File

@ -14,9 +14,10 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import iso8601
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
import webob

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_serialization import jsonutils
from oslo_utils import encodeutils

View File

@ -12,8 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_utils import uuidutils
from webob import exc

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from six.moves.urllib import parse
import webob

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
import webob
from manila.api import common

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from webob import exc
from manila.api.openstack import api_version_request as api_version

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_serialization import jsonutils
import six
import webob

View File

@ -15,8 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_utils import strutils
import webob

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
import webob
from manila.api.v1 import share_unmanage

View File

@ -15,9 +15,9 @@
import copy
import datetime
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
import six

View File

@ -12,8 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from manila.api.v2 import availability_zones
from manila import context

View File

@ -10,9 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import datetime
import iso8601
import mock
from oslo_config import cfg
import webob

View File

@ -19,9 +19,9 @@ Tests for manila.api.v1.quota_class_sets.py
"""
import copy
from unittest import mock
import ddt
import mock
from oslo_config import cfg
import webob.exc
import webob.response

View File

@ -18,8 +18,9 @@
Tests for manila.api.v2.quota_sets.py
"""
from unittest import mock
import ddt
import mock
from oslo_config import cfg
import webob.exc
import webob.response

View File

@ -12,9 +12,10 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import datetime
import ddt
import mock
from manila.api.v1 import security_service
from manila.common import constants

View File

@ -16,9 +16,9 @@
import datetime
from unittest import mock
import ddt
import mock
from oslo_utils import timeutils
from manila.api.v2 import services

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
import webob
from manila.api.v2 import share_access_metadata

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from webob import exc
from manila.api.v2 import share_accesses

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from webob import exc
from manila.api.openstack import api_version_request as api_version

View File

@ -15,9 +15,9 @@
import copy
import datetime
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
from oslo_utils import uuidutils

View File

@ -10,8 +10,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_utils import strutils
import webob

View File

@ -12,9 +12,9 @@
import copy
import datetime
from unittest import mock
import ddt
import mock
from oslo_config import cfg
import webob

View File

@ -15,9 +15,9 @@
import copy
import datetime
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
from oslo_utils import uuidutils

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from webob import exc
from manila.api.v2 import share_instance_export_locations as export_locations

View File

@ -10,8 +10,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
import six

View File

@ -14,8 +14,9 @@
# under the License.
import copy
from unittest import mock
import ddt
import mock
from oslo_db import exception as db_exception
from manila.api import common

View File

@ -14,14 +14,15 @@
# under the License.
import copy
from unittest import mock
import ddt
from manila.api import common
import mock
from oslo_db import exception as db_exception
from oslo_utils import timeutils
from six.moves.urllib import parse
from webob import exc as webob_exc
from manila.api import common
from manila.api.openstack import api_version_request as api_version
from manila.api.v2 import share_networks
from manila.db import api as db_api

View File

@ -12,8 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from webob import exc
from manila.api.v2 import share_replica_export_locations as export_locations

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
import six

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
import webob
from manila.api.v2 import share_servers

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from manila.api.v2 import share_snapshot_export_locations as export_locations
from manila.common import constants

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from manila.api.v2 import share_snapshot_instance_export_locations as exp_loc
from manila.common import constants

View File

@ -12,8 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
import six

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_serialization import jsonutils
import six
import webob

View File

@ -14,12 +14,12 @@
# under the License.
import datetime
import random
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_utils import timeutils
import random
import webob
from manila.api.v2 import share_types as types

View File

@ -16,9 +16,9 @@
import copy
import datetime
import itertools
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils
from oslo_utils import uuidutils

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from manila.api.openstack import api_version_request as api_version
from manila.api.views import share_accesses

View File

@ -14,9 +14,9 @@
# under the License.
import copy
from unittest import mock
import ddt
import mock
from manila.api.views import versions
from manila import test

View File

@ -16,9 +16,9 @@
import code
import readline
import sys
from unittest import mock
import ddt
import mock
from oslo_config import cfg
import six

View File

@ -14,9 +14,9 @@
# under the License.
import sys
from unittest import mock
import ddt
import mock
from manila.cmd import share as manila_share
from manila import test

View File

@ -13,11 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
from keystoneauth1 import loading as auth
from oslo_config import cfg
import mock
from manila.common import client_auth
from manila import exception
from manila import test

View File

@ -12,8 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from novaclient import exceptions as nova_exception
from novaclient import utils
from novaclient.v2 import servers as nova_servers

View File

@ -14,9 +14,9 @@
# under the License.
import os
from unittest import mock
import ddt
import mock
from manila.common import constants
from manila import context

View File

@ -15,8 +15,10 @@
"""
Tests For Data Manager
"""
from unittest import mock
import ddt
import mock
from manila.common import constants
from manila import context

View File

@ -17,8 +17,8 @@ Unit Tests for manila.data.rpcapi
"""
import copy
from unittest import mock
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils

View File

@ -15,8 +15,7 @@
import os
import time
import mock
from unittest import mock
from manila.data import utils as data_utils
from manila import exception

View File

@ -17,8 +17,9 @@
Tests for database migrations.
"""
from unittest import mock
from alembic import script
import mock
from oslo_db.sqlalchemy import test_base
from oslo_db.sqlalchemy import test_migrations
from oslo_log import log

View File

@ -19,10 +19,10 @@
import copy
import datetime
import ddt
import mock
import random
from unittest import mock
import ddt
from oslo_db import exception as db_exception
from oslo_utils import timeutils
from oslo_utils import uuidutils

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import alembic
import mock
from manila.db import migration
from manila import test

View File

@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
from manila.tests import fake_compute

View File

@ -15,9 +15,9 @@
"""This modules stubs out functions in manila.utils."""
import re
from unittest import mock
from eventlet import greenthread
import mock
from oslo_log import log
import six

View File

@ -9,9 +9,10 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import datetime
import mock
import datetime
from unittest import mock
from oslo_config import cfg
from oslo_utils import timeutils

View File

@ -13,7 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
import six
from manila.network.linux import interface

View File

@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
from manila.network.linux import ip_lib
from manila import test

View File

@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
from manila.network.linux import ovs_lib
from manila import test

View File

@ -14,7 +14,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
from neutronclient.common import exceptions as neutron_client_exc
from neutronclient.v2_0 import client as clientv20
from oslo_config import cfg

View File

@ -15,10 +15,10 @@
# under the License.
import copy
import ddt
import mock
import time
from unittest import mock
import ddt
from oslo_config import cfg
from manila.common import constants

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
import netaddr
from oslo_config import cfg
import six

View File

@ -17,7 +17,8 @@
Tests For Base Scheduler
"""
import mock
from unittest import mock
from oslo_config import cfg
from oslo_utils import timeutils

View File

@ -16,8 +16,9 @@
Tests For Filter Scheduler.
"""
from unittest import mock
import ddt
import mock
from oslo_utils import strutils
from manila.common import constants

View File

@ -17,7 +17,8 @@
Tests For Simple Scheduler
"""
import mock
from unittest import mock
from oslo_config import cfg
from manila import context

View File

@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import mock
from unittest import mock
from manila.scheduler.filters import base
from manila import test

View File

@ -19,8 +19,9 @@ Tests For HostManager
"""
import copy
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_utils import timeutils
from six import moves

View File

@ -17,14 +17,10 @@
Tests For Scheduler Manager
"""
try:
# Python3 variant
from importlib import reload
except ImportError:
pass
from importlib import reload
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from manila.common import constants

View File

@ -17,8 +17,8 @@ Unit Tests for manila.scheduler.rpcapi
"""
import copy
from unittest import mock
import mock
from oslo_config import cfg
from manila import context

View File

@ -16,8 +16,9 @@
Tests For Capacity Weigher.
"""
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from manila import context

View File

@ -17,7 +17,7 @@
Tests for Host Affinity Weigher.
"""
import mock
from unittest import mock
from manila.common import constants
from manila.db import api as db_api

View File

@ -16,7 +16,8 @@
Tests For Pool Weigher.
"""
import mock
from unittest import mock
from oslo_config import cfg
from oslo_utils import timeutils

View File

@ -13,12 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_utils import units
from manila.common import constants
from manila import context
import manila.exception as exception

View File

@ -14,10 +14,11 @@
# under the License.
"""Unit tests for the Container helper module."""
import ddt
import mock
from unittest import mock
import uuid
import ddt
from manila import exception
from manila.share import configuration
from manila.share.drivers.container import container_helper

View File

@ -14,9 +14,10 @@
# under the License.
"""Unit tests for the Container driver module."""
import ddt
import functools
import mock
from unittest import mock
import ddt
from oslo_config import cfg
from manila.common import constants as const

View File

@ -14,9 +14,10 @@
# under the License.
"""Unit tests for the Protocol helper module."""
import ddt
import functools
import mock
from unittest import mock
import ddt
from manila.common import constants as const
from manila import exception

View File

@ -13,9 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
"""Unit tests for the Storage helper module."""
import ddt
import functools
import mock
from unittest import mock
import ddt
from manila import exception
from manila.share import configuration

View File

@ -13,7 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
from oslo_utils import units
from manila.common import constants as const

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
from eventlet import greenthread
import mock
from oslo_concurrency import processutils
from six.moves.urllib import error as url_error
from six.moves.urllib import request as url_request

View File

@ -13,9 +13,10 @@
# License for the specific language governing permissions and limitations
# under the License.
import ddt
import mock
import ssl
from unittest import mock
import ddt
from manila.share.drivers.dell_emc.common.enas import utils
from manila import test

View File

@ -14,9 +14,9 @@
# under the License.
import doctest
from unittest import mock
from lxml import doctestcompare
import mock
import six

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_log import log
from oslo_utils import units
from requests.exceptions import HTTPError

View File

@ -14,9 +14,9 @@
# under the License.
import copy
from unittest import mock
import ddt
import mock
from oslo_log import log
from manila import exception

View File

@ -14,10 +14,10 @@
# under the License.
import copy
from unittest import mock
import ddt
from lxml import builder
import mock
from oslo_concurrency import processutils
from manila import exception

View File

@ -13,8 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
import sys
from unittest import mock
sys.modules['storops'] = mock.Mock()
sys.modules['storops.unity'] = mock.Mock()

View File

@ -13,7 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
from oslo_config import cfg
from oslo_log import log

View File

@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import ddt
import mock
from oslo_utils import units
from manila import exception

View File

@ -14,8 +14,9 @@
# under the License.
import copy
from unittest import mock
import ddt
import mock
from oslo_utils import units
import six

View File

@ -14,9 +14,9 @@
# under the License.
from os import path
from unittest import mock
import yaml
import mock
from oslo_log import log
LOG = log.getLogger(__name__)

View File

@ -14,9 +14,9 @@
# under the License.
import copy
from unittest import mock
import ddt
import mock
from oslo_log import log
from manila import exception

View File

@ -15,10 +15,11 @@
import copy
import time
from unittest import mock
import ddt
from lxml import builder
import mock
from oslo_concurrency import processutils

View File

@ -13,7 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from unittest import mock
from stevedore import extension
from manila.share import configuration as conf

View File

@ -15,9 +15,9 @@
import copy
import re
from unittest import mock
import ddt
import mock
from oslo_serialization import jsonutils
import six

View File

@ -14,9 +14,9 @@
# under the License.
import os
from unittest import mock
import ddt
import mock
from manila import exception
from manila.share.drivers.ganesha import utils as ganesha_utils

View File

@ -15,8 +15,9 @@
"""Test cases for GlusterFS common routines."""
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from manila import exception

View File

@ -18,8 +18,9 @@
Test cases for GlusterFS native protocol driver.
"""
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from manila.common import constants

View File

@ -15,9 +15,9 @@
import errno
import os
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from oslo_utils import importutils

View File

@ -14,9 +14,9 @@
# under the License.
import os
from unittest import mock
import ddt
import mock
from oslo_config import cfg
from manila import context

Some files were not shown because too many files have changed in this diff Show More