From f64110f652a193157979eeadf54524d12441f39a Mon Sep 17 00:00:00 2001 From: Akihiro Motoki Date: Sun, 2 Jul 2017 11:07:42 +0000 Subject: [PATCH] Use flake8-import-order plugin In reviews we usually check import grouping but it is boring. By using flake8-import-order plugin, we can avoid this. It enforces loose checking so it sounds good to use it. This flake8 plugin is already used in tempest. Note that flake8-import-order version is pinned to avoid unexpected breakage of pep8 job. Setup for unit tests of hacking rules is tweaked to disable flake8-import-order checks. This extension assumes an actual file exists and causes hacking rule unit tests. Change-Id: Ib51bd97dc4394ef2b46d4dbb7fb36a9aa9f8fe3d --- neutron/agent/l3/router_info.py | 1 + neutron/extensions/segment.py | 2 +- neutron/manager.py | 1 + neutron/scheduler/dhcp_agent_scheduler.py | 2 +- neutron/tests/fullstack/resources/client.py | 2 +- neutron/tests/fullstack/test_l3_agent.py | 2 +- neutron/tests/functional/agent/l3/framework.py | 2 +- .../tests/functional/agent/linux/bin/ipt_binname.py | 1 + neutron/tests/functional/agent/test_l2_ovs_agent.py | 2 +- neutron/tests/functional/db/test_migrations.py | 4 ++-- neutron/tests/unit/agent/l3/test_dvr_fip_ns.py | 1 + .../tests/unit/agent/linux/test_external_process.py | 2 +- neutron/tests/unit/agent/linux/test_ip_lib.py | 2 +- neutron/tests/unit/agent/linux/test_keepalived.py | 5 ++--- neutron/tests/unit/agent/test_rpc.py | 1 + .../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 2 +- neutron/tests/unit/common/test_ipv6_utils.py | 1 + neutron/tests/unit/db/test_agents_db.py | 2 +- neutron/tests/unit/db/test_ipam_pluggable_backend.py | 1 + neutron/tests/unit/db/test_securitygroups_db.py | 1 + neutron/tests/unit/db/test_sqlalchemytypes.py | 2 +- neutron/tests/unit/extensions/test_flavors.py | 2 +- neutron/tests/unit/extensions/test_segment.py | 2 +- neutron/tests/unit/extensions/test_timestamp.py | 2 +- neutron/tests/unit/hacking/test_checks.py | 12 ++++++++---- neutron/tests/unit/objects/test_quota.py | 1 + .../ml2/drivers/macvtap/test_macvtap_common.py | 1 + .../drivers/openvswitch/agent/test_trunk_manager.py | 2 +- test-requirements.txt | 1 + tox.ini | 1 + 30 files changed, 39 insertions(+), 24 deletions(-) diff --git a/neutron/agent/l3/router_info.py b/neutron/agent/l3/router_info.py index 7333aa591eb..8deef250440 100644 --- a/neutron/agent/l3/router_info.py +++ b/neutron/agent/l3/router_info.py @@ -13,6 +13,7 @@ # under the License. import collections + import netaddr from neutron_lib import constants as lib_constants from neutron_lib.utils import helpers diff --git a/neutron/extensions/segment.py b/neutron/extensions/segment.py index 3f2627ea704..3d0e5543dca 100644 --- a/neutron/extensions/segment.py +++ b/neutron/extensions/segment.py @@ -13,7 +13,6 @@ # under the License. import abc -import six from neutron_lib.api import converters from neutron_lib.api.definitions import provider_net as providernet @@ -21,6 +20,7 @@ from neutron_lib.api import extensions as api_extensions from neutron_lib import constants from neutron_lib.db import constants as db_const from neutron_lib.plugins import directory +import six from neutron.api import extensions from neutron.api.v2 import attributes diff --git a/neutron/manager.py b/neutron/manager.py index 75f83a491a7..2ab5fc8330f 100644 --- a/neutron/manager.py +++ b/neutron/manager.py @@ -14,6 +14,7 @@ # under the License. from collections import defaultdict + from neutron_lib.plugins import constants as lib_const from neutron_lib.plugins import directory from oslo_config import cfg diff --git a/neutron/scheduler/dhcp_agent_scheduler.py b/neutron/scheduler/dhcp_agent_scheduler.py index 7df4442568b..78ab21754d7 100644 --- a/neutron/scheduler/dhcp_agent_scheduler.py +++ b/neutron/scheduler/dhcp_agent_scheduler.py @@ -15,9 +15,9 @@ import collections +from operator import itemgetter from neutron_lib import constants -from operator import itemgetter from oslo_config import cfg from oslo_db import exception as db_exc from oslo_log import log as logging diff --git a/neutron/tests/fullstack/resources/client.py b/neutron/tests/fullstack/resources/client.py index 427bd291862..25bd35dfbc4 100644 --- a/neutron/tests/fullstack/resources/client.py +++ b/neutron/tests/fullstack/resources/client.py @@ -13,9 +13,9 @@ # under the License. # import functools -import netaddr import fixtures +import netaddr from neutron_lib.api.definitions import portbindings from neutron_lib import constants from neutronclient.common import exceptions diff --git a/neutron/tests/fullstack/test_l3_agent.py b/neutron/tests/fullstack/test_l3_agent.py index a1d1b4de8db..ba2b8d09dbd 100644 --- a/neutron/tests/fullstack/test_l3_agent.py +++ b/neutron/tests/fullstack/test_l3_agent.py @@ -13,10 +13,10 @@ # under the License. import functools -import netaddr import os import time +import netaddr from oslo_utils import uuidutils from neutron.agent.l3 import ha_router diff --git a/neutron/tests/functional/agent/l3/framework.py b/neutron/tests/functional/agent/l3/framework.py index de2a97d5976..0acd8854ff1 100644 --- a/neutron/tests/functional/agent/l3/framework.py +++ b/neutron/tests/functional/agent/l3/framework.py @@ -15,6 +15,7 @@ import copy import functools +import textwrap import mock import netaddr @@ -23,7 +24,6 @@ from oslo_config import cfg from oslo_log import log as logging from oslo_utils import uuidutils import testtools -import textwrap from neutron.agent.common import ovs_lib from neutron.agent.l3 import agent as neutron_l3_agent diff --git a/neutron/tests/functional/agent/linux/bin/ipt_binname.py b/neutron/tests/functional/agent/linux/bin/ipt_binname.py index 79bd9be0a57..b41d6217d5d 100755 --- a/neutron/tests/functional/agent/linux/bin/ipt_binname.py +++ b/neutron/tests/functional/agent/linux/bin/ipt_binname.py @@ -17,6 +17,7 @@ # under the License. from __future__ import print_function + import sys import eventlet diff --git a/neutron/tests/functional/agent/test_l2_ovs_agent.py b/neutron/tests/functional/agent/test_l2_ovs_agent.py index 165394186b9..c2d3f0c7891 100644 --- a/neutron/tests/functional/agent/test_l2_ovs_agent.py +++ b/neutron/tests/functional/agent/test_l2_ovs_agent.py @@ -14,9 +14,9 @@ # License for the specific language governing permissions and limitations # under the License. -import mock import time +import mock from neutron_lib.callbacks import events from neutron_lib.callbacks import registry from neutron_lib.callbacks import resources diff --git a/neutron/tests/functional/db/test_migrations.py b/neutron/tests/functional/db/test_migrations.py index d581f80596e..263352b1616 100644 --- a/neutron/tests/functional/db/test_migrations.py +++ b/neutron/tests/functional/db/test_migrations.py @@ -13,10 +13,11 @@ # under the License. import collections +from contextlib import contextmanager +import subprocess from alembic.ddl import base as alembic_ddl from alembic import script as alembic_script -from contextlib import contextmanager from oslo_config import cfg from oslo_config import fixture as config_fixture from oslo_db.sqlalchemy import test_migrations @@ -25,7 +26,6 @@ import six import sqlalchemy from sqlalchemy import event # noqa from sqlalchemy.sql import ddl as sqla_ddl -import subprocess from neutron.db.migration.alembic_migrations import external from neutron.db.migration import cli as migration diff --git a/neutron/tests/unit/agent/l3/test_dvr_fip_ns.py b/neutron/tests/unit/agent/l3/test_dvr_fip_ns.py index 2feebd75058..b39c2640bb7 100644 --- a/neutron/tests/unit/agent/l3/test_dvr_fip_ns.py +++ b/neutron/tests/unit/agent/l3/test_dvr_fip_ns.py @@ -13,6 +13,7 @@ # under the License. import copy + import mock from oslo_config import cfg from oslo_utils import uuidutils diff --git a/neutron/tests/unit/agent/linux/test_external_process.py b/neutron/tests/unit/agent/linux/test_external_process.py index 5e4eaa70507..866a284514b 100644 --- a/neutron/tests/unit/agent/linux/test_external_process.py +++ b/neutron/tests/unit/agent/linux/test_external_process.py @@ -12,9 +12,9 @@ # License for the specific language governing permissions and limitations # under the License. -import mock import os.path +import mock from oslo_utils import fileutils import psutil diff --git a/neutron/tests/unit/agent/linux/test_ip_lib.py b/neutron/tests/unit/agent/linux/test_ip_lib.py index f2844d2ee30..0fbc809904a 100644 --- a/neutron/tests/unit/agent/linux/test_ip_lib.py +++ b/neutron/tests/unit/agent/linux/test_ip_lib.py @@ -14,6 +14,7 @@ # under the License. import errno +import socket import mock import netaddr @@ -21,7 +22,6 @@ from neutron_lib import exceptions import pyroute2 from pyroute2.netlink.rtnl import ndmsg from pyroute2 import NetlinkError -import socket import testtools from neutron.agent.common import utils # noqa diff --git a/neutron/tests/unit/agent/linux/test_keepalived.py b/neutron/tests/unit/agent/linux/test_keepalived.py index b881f7b5d16..8ec6b4fa472 100644 --- a/neutron/tests/unit/agent/linux/test_keepalived.py +++ b/neutron/tests/unit/agent/linux/test_keepalived.py @@ -14,12 +14,11 @@ # import os - -import mock -import testtools import textwrap +import mock from neutron_lib import constants as n_consts +import testtools from neutron.agent.linux import keepalived from neutron.tests import base diff --git a/neutron/tests/unit/agent/test_rpc.py b/neutron/tests/unit/agent/test_rpc.py index a5edd1f799e..c4be4357b97 100644 --- a/neutron/tests/unit/agent/test_rpc.py +++ b/neutron/tests/unit/agent/test_rpc.py @@ -14,6 +14,7 @@ # under the License. import datetime + import mock from oslo_context import context as oslo_context diff --git a/neutron/tests/unit/api/rpc/agentnotifiers/test_dhcp_rpc_agent_api.py b/neutron/tests/unit/api/rpc/agentnotifiers/test_dhcp_rpc_agent_api.py index 3efd2785237..64bdf170c42 100644 --- a/neutron/tests/unit/api/rpc/agentnotifiers/test_dhcp_rpc_agent_api.py +++ b/neutron/tests/unit/api/rpc/agentnotifiers/test_dhcp_rpc_agent_api.py @@ -14,8 +14,8 @@ # limitations under the License. import datetime -import mock +import mock from neutron_lib.callbacks import events from neutron_lib.callbacks import registry from neutron_lib.callbacks import resources diff --git a/neutron/tests/unit/common/test_ipv6_utils.py b/neutron/tests/unit/common/test_ipv6_utils.py index 652b5458d15..5d4b06c6bcd 100644 --- a/neutron/tests/unit/common/test_ipv6_utils.py +++ b/neutron/tests/unit/common/test_ipv6_utils.py @@ -14,6 +14,7 @@ # under the License. import collections + import mock from neutron_lib import constants diff --git a/neutron/tests/unit/db/test_agents_db.py b/neutron/tests/unit/db/test_agents_db.py index 19245ad7b04..7c182b6a98e 100644 --- a/neutron/tests/unit/db/test_agents_db.py +++ b/neutron/tests/unit/db/test_agents_db.py @@ -16,8 +16,8 @@ import copy import datetime -import mock +import mock from neutron_lib import constants from neutron_lib import context from neutron_lib import exceptions as n_exc diff --git a/neutron/tests/unit/db/test_ipam_pluggable_backend.py b/neutron/tests/unit/db/test_ipam_pluggable_backend.py index a5353d6f825..0acd3c4a582 100644 --- a/neutron/tests/unit/db/test_ipam_pluggable_backend.py +++ b/neutron/tests/unit/db/test_ipam_pluggable_backend.py @@ -14,6 +14,7 @@ # under the License. import copy + import mock import netaddr from neutron_lib import constants diff --git a/neutron/tests/unit/db/test_securitygroups_db.py b/neutron/tests/unit/db/test_securitygroups_db.py index fd4236aba91..89423229e5b 100644 --- a/neutron/tests/unit/db/test_securitygroups_db.py +++ b/neutron/tests/unit/db/test_securitygroups_db.py @@ -12,6 +12,7 @@ # limitations under the License. import copy + import mock from neutron_lib.callbacks import events from neutron_lib.callbacks import exceptions diff --git a/neutron/tests/unit/db/test_sqlalchemytypes.py b/neutron/tests/unit/db/test_sqlalchemytypes.py index c2ef7f49c27..73b2dfb851f 100644 --- a/neutron/tests/unit/db/test_sqlalchemytypes.py +++ b/neutron/tests/unit/db/test_sqlalchemytypes.py @@ -11,8 +11,8 @@ # under the License. import abc -import netaddr +import netaddr from neutron_lib import context from oslo_db import exception from oslo_db.tests.sqlalchemy import base as test_base diff --git a/neutron/tests/unit/extensions/test_flavors.py b/neutron/tests/unit/extensions/test_flavors.py index 5498ccbcea9..4047b77553a 100644 --- a/neutron/tests/unit/extensions/test_flavors.py +++ b/neutron/tests/unit/extensions/test_flavors.py @@ -14,9 +14,9 @@ import copy + import fixtures import mock - from neutron_lib import context from neutron_lib.db import constants as db_const from oslo_config import cfg diff --git a/neutron/tests/unit/extensions/test_segment.py b/neutron/tests/unit/extensions/test_segment.py index 9a2d15206a0..dd38dd31849 100644 --- a/neutron/tests/unit/extensions/test_segment.py +++ b/neutron/tests/unit/extensions/test_segment.py @@ -13,8 +13,8 @@ # under the License. import copy -from keystoneauth1 import exceptions as ks_exc +from keystoneauth1 import exceptions as ks_exc import mock import netaddr from neutron_lib.api.definitions import portbindings diff --git a/neutron/tests/unit/extensions/test_timestamp.py b/neutron/tests/unit/extensions/test_timestamp.py index 123f0117b10..97b3b3054cc 100644 --- a/neutron/tests/unit/extensions/test_timestamp.py +++ b/neutron/tests/unit/extensions/test_timestamp.py @@ -13,12 +13,12 @@ # under the License. import datetime -import six import mock from neutron_lib import context from neutron_lib.plugins import directory from oslo_utils import timeutils +import six from neutron.db import db_base_plugin_v2 from neutron.db import models_v2 diff --git a/neutron/tests/unit/hacking/test_checks.py b/neutron/tests/unit/hacking/test_checks.py index 5b0914b3673..8736c4a82d7 100644 --- a/neutron/tests/unit/hacking/test_checks.py +++ b/neutron/tests/unit/hacking/test_checks.py @@ -15,6 +15,7 @@ import re from flake8 import engine from hacking.tests import test_doctest as hacking_doctest import pep8 +import pkg_resources import testscenarios import testtools from testtools import content @@ -288,10 +289,13 @@ def _get_lines(check): def load_tests(loader, tests, pattern): - flake8_style = engine.get_style_guide(parse_argv=False, - # Ignore H104 otherwise it's - # raised on doctests. - ignore=('F', 'H104')) + default_checks = [e.name for e + in pkg_resources.iter_entry_points('flake8.extension')] + flake8_style = engine.get_style_guide( + parse_argv=False, + # We are testing neutron-specific hacking rules, so there is no need + # to run the checks registered by hacking or other flake8 extensions. + ignore=default_checks) options = flake8_style.options for name, check in checks.__dict__.items(): diff --git a/neutron/tests/unit/objects/test_quota.py b/neutron/tests/unit/objects/test_quota.py index b13ba8e50da..bd6b20e7bb3 100644 --- a/neutron/tests/unit/objects/test_quota.py +++ b/neutron/tests/unit/objects/test_quota.py @@ -13,6 +13,7 @@ # under the License. import datetime + from oslo_utils import uuidutils from neutron.objects import quota diff --git a/neutron/tests/unit/plugins/ml2/drivers/macvtap/test_macvtap_common.py b/neutron/tests/unit/plugins/ml2/drivers/macvtap/test_macvtap_common.py index ce25005c3d2..aa8ffb259ee 100644 --- a/neutron/tests/unit/plugins/ml2/drivers/macvtap/test_macvtap_common.py +++ b/neutron/tests/unit/plugins/ml2/drivers/macvtap/test_macvtap_common.py @@ -15,6 +15,7 @@ # under the License. import hashlib + import mock from neutron.plugins.ml2.drivers.macvtap import macvtap_common as m_common diff --git a/neutron/tests/unit/services/trunk/drivers/openvswitch/agent/test_trunk_manager.py b/neutron/tests/unit/services/trunk/drivers/openvswitch/agent/test_trunk_manager.py index 9a7b3c37a2a..16be064bf29 100644 --- a/neutron/tests/unit/services/trunk/drivers/openvswitch/agent/test_trunk_manager.py +++ b/neutron/tests/unit/services/trunk/drivers/openvswitch/agent/test_trunk_manager.py @@ -14,8 +14,8 @@ # under the License. import contextlib -import mock +import mock import testtools from neutron.services.trunk.drivers.openvswitch.agent import trunk_manager diff --git a/test-requirements.txt b/test-requirements.txt index 366db227d93..3f4bc2a2b1d 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -5,6 +5,7 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD +flake8-import-order==0.12 # LGPLv3 mock>=2.0 # BSD python-subunit>=0.0.18 # Apache-2.0/BSD sphinx!=1.6.1,>=1.5.1 # BSD diff --git a/tox.ini b/tox.ini index a2b3c4909fd..9d55b8e911b 100644 --- a/tox.ini +++ b/tox.ini @@ -145,6 +145,7 @@ ignore = E125,E126,E128,E129,E265,H404,H405,N530,N534,N536,N537 enable-extensions=H106,H203,H904 show-source = true exclude = ./.*,build,dist,doc +import-order-style = pep8 [hacking] import_exceptions = neutron._i18n