summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGinnis <sean.mcginnis@gmail.com>2020-06-02 16:58:53 -0500
committerEric Harney <eharney@redhat.com>2021-03-10 15:04:27 -0500
commit82f0ceb724e93ccf22140762c65da88c9c2f4bb4 (patch)
tree1e6c3efb8abadfa6f0fdb4f3df568193ad79fdba
parent7a0d07c16d20fcb1e12368aa0ec20e2f53130f3a (diff)
downloadpython-cinderclient-82f0ceb724e93ccf22140762c65da88c9c2f4bb4.tar.gz
Add flake8-import-order extension
This adds the import order extension to match what we have in the cinder repo. This is a linting extension that will check that imports are in the correct order and the correct grouping so they automatically get flagged, and it won't be whether reviewers notice and decide to do anything or not. Cinder change was Ic13ba238a4a45c6219f4de131cfe0366219d722f for a little more wordy reasoning. Also includes updates for noqa tags. Newer version of the linters appear to want these on the function definition line, not on the decorator line. Change-Id: Ibf3f3afbf3bb6ec6613b35f91d4a353c6a391f41 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
-rw-r--r--cinderclient/apiclient/base.py8
-rw-r--r--cinderclient/shell.py2
-rw-r--r--cinderclient/tests/unit/fake_actions_module.py4
-rw-r--r--cinderclient/tests/unit/test_utils.py4
-rw-r--r--cinderclient/tests/unit/v2/contrib/test_list_extensions.py4
-rw-r--r--cinderclient/tests/unit/v2/fakes.py1
-rw-r--r--cinderclient/tests/unit/v2/test_capabilities.py3
-rw-r--r--cinderclient/tests/unit/v2/test_pools.py3
-rw-r--r--cinderclient/tests/unit/v2/test_shell.py2
-rw-r--r--cinderclient/tests/unit/v2/test_type_access.py3
-rw-r--r--cinderclient/tests/unit/v2/test_types.py3
-rw-r--r--cinderclient/tests/unit/v3/fakes.py3
-rw-r--r--cinderclient/tests/unit/v3/test_clusters.py4
-rw-r--r--cinderclient/tests/unit/v3/test_group_types.py3
-rw-r--r--cinderclient/tests/unit/v3/test_services.py3
-rw-r--r--cinderclient/tests/unit/v3/test_shell.py7
-rw-r--r--cinderclient/v3/messages.py5
-rw-r--r--cinderclient/v3/volume_backups.py12
-rw-r--r--cinderclient/v3/volumes.py14
-rw-r--r--test-requirements.txt2
-rwxr-xr-xtools/colorizer.py2
-rw-r--r--tox.ini4
22 files changed, 44 insertions, 52 deletions
diff --git a/cinderclient/apiclient/base.py b/cinderclient/apiclient/base.py
index c0bcd24..8caa0bc 100644
--- a/cinderclient/apiclient/base.py
+++ b/cinderclient/apiclient/base.py
@@ -16,9 +16,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-"""
-Base utilities to build API operation managers and objects on top of.
-"""
+"""Base utilities to build API operation managers and objects on top of."""
# E1102: %s is not callable
# pylint: disable=E1102
@@ -26,13 +24,13 @@ Base utilities to build API operation managers and objects on top of.
import abc
import copy
+from oslo_utils import encodeutils
+from oslo_utils import strutils
from requests import Response
from cinderclient.apiclient import exceptions
from cinderclient import utils
-from oslo_utils import encodeutils
-from oslo_utils import strutils
def getid(obj):
diff --git a/cinderclient/shell.py b/cinderclient/shell.py
index f0825d5..0c3fa45 100644
--- a/cinderclient/shell.py
+++ b/cinderclient/shell.py
@@ -22,6 +22,7 @@ import collections
import getpass
import logging
import sys
+from urllib import parse as urlparse
from keystoneauth1 import discover
from keystoneauth1 import exceptions
@@ -31,7 +32,6 @@ from keystoneauth1 import loading
from keystoneauth1 import session
from oslo_utils import importutils
import requests
-from urllib import parse as urlparse
import cinderclient
from cinderclient._i18n import _
diff --git a/cinderclient/tests/unit/fake_actions_module.py b/cinderclient/tests/unit/fake_actions_module.py
index 07e7d29..a2c4bf7 100644
--- a/cinderclient/tests/unit/fake_actions_module.py
+++ b/cinderclient/tests/unit/fake_actions_module.py
@@ -26,8 +26,8 @@ def do_fake_action():
return "fake_action 3.0 to 3.1"
-@api_versions.wraps("3.2", "3.3") # noqa: F811
-def do_fake_action(): # noqa
+@api_versions.wraps("3.2", "3.3")
+def do_fake_action(): # noqa: F811
return "fake_action 3.2 to 3.3"
diff --git a/cinderclient/tests/unit/test_utils.py b/cinderclient/tests/unit/test_utils.py
index a9636db..1fb9433 100644
--- a/cinderclient/tests/unit/test_utils.py
+++ b/cinderclient/tests/unit/test_utils.py
@@ -70,8 +70,8 @@ class FakeManagerWithApi(base.Manager):
def return_api_version(self):
return '3.1'
- @api_versions.wraps('3.2') # noqa: F811
- def return_api_version(self): # noqa
+ @api_versions.wraps('3.2')
+ def return_api_version(self): # noqa: F811
return '3.2'
diff --git a/cinderclient/tests/unit/v2/contrib/test_list_extensions.py b/cinderclient/tests/unit/v2/contrib/test_list_extensions.py
index 313b6ef..4b6100f 100644
--- a/cinderclient/tests/unit/v2/contrib/test_list_extensions.py
+++ b/cinderclient/tests/unit/v2/contrib/test_list_extensions.py
@@ -15,11 +15,9 @@
# under the License.
from cinderclient import extension
-from cinderclient.v2.contrib import list_extensions
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v2 import fakes
-
+from cinderclient.v2.contrib import list_extensions
extensions = [
extension.Extension(list_extensions.__name__.split(".")[-1],
diff --git a/cinderclient/tests/unit/v2/fakes.py b/cinderclient/tests/unit/v2/fakes.py
index 99a87d0..4c09e9d 100644
--- a/cinderclient/tests/unit/v2/fakes.py
+++ b/cinderclient/tests/unit/v2/fakes.py
@@ -13,7 +13,6 @@
# limitations under the License.
from datetime import datetime
-
from urllib import parse as urlparse
from cinderclient import client as base_client
diff --git a/cinderclient/tests/unit/v2/test_capabilities.py b/cinderclient/tests/unit/v2/test_capabilities.py
index 01a132d..98d8d71 100644
--- a/cinderclient/tests/unit/v2/test_capabilities.py
+++ b/cinderclient/tests/unit/v2/test_capabilities.py
@@ -13,10 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from cinderclient.v2.capabilities import Capabilities
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v2 import fakes
+from cinderclient.v2.capabilities import Capabilities
cs = fakes.FakeClient()
diff --git a/cinderclient/tests/unit/v2/test_pools.py b/cinderclient/tests/unit/v2/test_pools.py
index 543e316..e909871 100644
--- a/cinderclient/tests/unit/v2/test_pools.py
+++ b/cinderclient/tests/unit/v2/test_pools.py
@@ -13,10 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from cinderclient.v2.pools import Pool
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v2 import fakes
+from cinderclient.v2.pools import Pool
cs = fakes.FakeClient()
diff --git a/cinderclient/tests/unit/v2/test_shell.py b/cinderclient/tests/unit/v2/test_shell.py
index f54846e..78ecf74 100644
--- a/cinderclient/tests/unit/v2/test_shell.py
+++ b/cinderclient/tests/unit/v2/test_shell.py
@@ -14,11 +14,11 @@
# under the License.
from unittest import mock
+from urllib import parse
import ddt
import fixtures
from requests_mock.contrib import fixture as requests_mock_fixture
-from urllib import parse
from cinderclient import client
from cinderclient import exceptions
diff --git a/cinderclient/tests/unit/v2/test_type_access.py b/cinderclient/tests/unit/v2/test_type_access.py
index 35a4480..d904c1d 100644
--- a/cinderclient/tests/unit/v2/test_type_access.py
+++ b/cinderclient/tests/unit/v2/test_type_access.py
@@ -14,10 +14,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from cinderclient.v2 import volume_type_access
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v2 import fakes
+from cinderclient.v2 import volume_type_access
cs = fakes.FakeClient()
diff --git a/cinderclient/tests/unit/v2/test_types.py b/cinderclient/tests/unit/v2/test_types.py
index 9ba13a9..cf13723 100644
--- a/cinderclient/tests/unit/v2/test_types.py
+++ b/cinderclient/tests/unit/v2/test_types.py
@@ -14,10 +14,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from cinderclient.v2 import volume_types
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v2 import fakes
+from cinderclient.v2 import volume_types
cs = fakes.FakeClient()
diff --git a/cinderclient/tests/unit/v3/fakes.py b/cinderclient/tests/unit/v3/fakes.py
index 3fb6a36..7647fb3 100644
--- a/cinderclient/tests/unit/v3/fakes.py
+++ b/cinderclient/tests/unit/v3/fakes.py
@@ -14,10 +14,9 @@
from datetime import datetime
-from cinderclient.v3 import client
-
from cinderclient.tests.unit import fakes
from cinderclient.tests.unit.v2 import fakes as fake_v2
+from cinderclient.v3 import client
fake_attachment = {'attachment': {
diff --git a/cinderclient/tests/unit/v3/test_clusters.py b/cinderclient/tests/unit/v3/test_clusters.py
index c2045b6..21b560d 100644
--- a/cinderclient/tests/unit/v3/test_clusters.py
+++ b/cinderclient/tests/unit/v3/test_clusters.py
@@ -13,12 +13,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+import ddt
+
from cinderclient import api_versions
from cinderclient import exceptions as exc
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v3 import fakes
-import ddt
-
cs = fakes.FakeClient(api_version=api_versions.APIVersion('3.7'))
diff --git a/cinderclient/tests/unit/v3/test_group_types.py b/cinderclient/tests/unit/v3/test_group_types.py
index 5833c3f..2263d0e 100644
--- a/cinderclient/tests/unit/v3/test_group_types.py
+++ b/cinderclient/tests/unit/v3/test_group_types.py
@@ -16,10 +16,9 @@
from cinderclient import api_versions
from cinderclient import exceptions as exc
-from cinderclient.v3 import group_types
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v3 import fakes
+from cinderclient.v3 import group_types
cs = fakes.FakeClient(api_version=api_versions.APIVersion('3.11'))
pre_cs = fakes.FakeClient(api_version=api_versions.APIVersion('3.10'))
diff --git a/cinderclient/tests/unit/v3/test_services.py b/cinderclient/tests/unit/v3/test_services.py
index 0715cd3..8af3682 100644
--- a/cinderclient/tests/unit/v3/test_services.py
+++ b/cinderclient/tests/unit/v3/test_services.py
@@ -14,10 +14,9 @@
# under the License.
from cinderclient import api_versions
-from cinderclient.v3 import services
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v3 import fakes
+from cinderclient.v3 import services
class ServicesTest(utils.TestCase):
diff --git a/cinderclient/tests/unit/v3/test_shell.py b/cinderclient/tests/unit/v3/test_shell.py
index 82e3943..756f512 100644
--- a/cinderclient/tests/unit/v3/test_shell.py
+++ b/cinderclient/tests/unit/v3/test_shell.py
@@ -51,15 +51,14 @@ from cinderclient import base
from cinderclient import client
from cinderclient import exceptions
from cinderclient import shell
+from cinderclient.tests.unit.fixture_data import keystone_client
+from cinderclient.tests.unit import utils
+from cinderclient.tests.unit.v3 import fakes
from cinderclient import utils as cinderclient_utils
from cinderclient.v3 import attachments
from cinderclient.v3 import volume_snapshots
from cinderclient.v3 import volumes
-from cinderclient.tests.unit.fixture_data import keystone_client
-from cinderclient.tests.unit import utils
-from cinderclient.tests.unit.v3 import fakes
-
@ddt.ddt
@mock.patch.object(client, 'Client', fakes.FakeClient)
diff --git a/cinderclient/v3/messages.py b/cinderclient/v3/messages.py
index 2c620c2..93aeefa 100644
--- a/cinderclient/v3/messages.py
+++ b/cinderclient/v3/messages.py
@@ -51,8 +51,9 @@ class MessageManager(base.ManagerWithFind):
url = self._build_list_url(resource_type, detailed=False)
return self._list(url, resource_type)
- @api_versions.wraps('3.5') # noqa: F811
- def list(self, search_opts=None, marker=None, limit=None, sort=None): # noqa
+ @api_versions.wraps('3.5')
+ def list(self, search_opts=None, marker=None, limit=None, # noqa: F811
+ sort=None):
"""Lists all messages.
:param search_opts: Search options to filter out volumes.
diff --git a/cinderclient/v3/volume_backups.py b/cinderclient/v3/volume_backups.py
index 7dd8560..22d25a3 100644
--- a/cinderclient/v3/volume_backups.py
+++ b/cinderclient/v3/volume_backups.py
@@ -60,8 +60,8 @@ class VolumeBackupManager(volume_backups.VolumeBackupManager):
return self._create_backup(volume_id, container, name, description,
incremental, force, snapshot_id)
- @api_versions.wraps("3.43") # noqa: F811
- def create(self, volume_id, container=None, # noqa
+ @api_versions.wraps("3.43")
+ def create(self, volume_id, container=None, # noqa: F811
name=None, description=None,
incremental=False, force=False,
snapshot_id=None,
@@ -84,10 +84,10 @@ class VolumeBackupManager(volume_backups.VolumeBackupManager):
return self._create_backup(volume_id, container, name, description,
incremental, force, snapshot_id, metadata)
- @api_versions.wraps("3.51") # noqa: F811
- def create(self, volume_id, container=None, name=None, description=None, # noqa
- incremental=False, force=False, snapshot_id=None, metadata=None,
- availability_zone=None):
+ @api_versions.wraps("3.51")
+ def create(self, volume_id, container=None, name=None, # noqa: F811
+ description=None, incremental=False, force=False,
+ snapshot_id=None, metadata=None, availability_zone=None):
return self._create_backup(volume_id, container, name, description,
incremental, force, snapshot_id, metadata,
availability_zone)
diff --git a/cinderclient/v3/volumes.py b/cinderclient/v3/volumes.py
index 974bcfc..8ea3880 100644
--- a/cinderclient/v3/volumes.py
+++ b/cinderclient/v3/volumes.py
@@ -159,8 +159,8 @@ class VolumeManager(volumes.VolumeManager):
return common_base.ListWithMeta([], response_list)
- @api_versions.wraps("3.15") # noqa: F811
- def delete_metadata(self, volume, keys): # noqa
+ @api_versions.wraps("3.15")
+ def delete_metadata(self, volume, keys): # noqa: F811
"""Delete specified keys from volumes metadata.
:param volume: The :class:`Volume`.
@@ -190,9 +190,9 @@ class VolumeManager(volumes.VolumeManager):
'container_format': container_format,
'disk_format': disk_format})
- @api_versions.wraps("3.1") # noqa: F811
- def upload_to_image(self, volume, force, image_name, container_format, # noqa
- disk_format, visibility, protected):
+ @api_versions.wraps("3.1")
+ def upload_to_image(self, volume, force, image_name, # noqa: F811
+ container_format, disk_format, visibility, protected):
"""Upload volume to image service as image.
:param volume: The :class:`Volume` to upload.
"""
@@ -264,8 +264,8 @@ class VolumeManager(volumes.VolumeManager):
return self._get('/scheduler-stats/get_pools%s' % query_string, None)
- @api_versions.wraps("3.33") # noqa: F811
- def get_pools(self, detail, search_opts): # noqa
+ @api_versions.wraps("3.33")
+ def get_pools(self, detail, search_opts): # noqa: F811
"""Show pool information for backends."""
# pylint: disable=function-redefined
options = {'detail': detail}
diff --git a/test-requirements.txt b/test-requirements.txt
index c660259..9e95002 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4,6 +4,8 @@
# Hacking already pins down pep8, pyflakes and flake8
hacking>=4.0.0,<4.1.0 # Apache-2.0
+flake8-import-order # LGPLv3
+
docutils>=0.15.2
coverage>=5.2.1 # Apache-2.0
ddt>=1.4.1 # MIT
diff --git a/tools/colorizer.py b/tools/colorizer.py
index 2a667b4..cf89535 100755
--- a/tools/colorizer.py
+++ b/tools/colorizer.py
@@ -42,10 +42,10 @@
"""Display a subunit stream through a colorized unittest test runner."""
import heapq
-import subunit
import sys
import unittest
+import subunit
import testtools
diff --git a/tox.ini b/tox.ini
index a123070..d66d486 100644
--- a/tox.ini
+++ b/tox.ini
@@ -109,7 +109,9 @@ commands = {[testenv:functional]commands}
[flake8]
show-source = True
ignore = H404,H405,E122,E123,E128,E251,W504
-exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
+exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build
+application-import-names = cinderclient
+import-order-style = pep8
[doc8]
ignore-path=.tox,*.egg-info,doc/src/api,doc/source/drivers.rst,doc/build,.eggs/*/EGG-INFO/*.txt,doc/source/configuration/tables,./*.txt,releasenotes/build,doc/source/cli/details.rst