Merge "remove hacking checks from keystoneclient"
This commit is contained in:
commit
272f60d8a2
@ -1,37 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
"""python-keystoneclient's pep8 extensions.
|
|
||||||
|
|
||||||
In order to make the review process faster and easier for core devs we are
|
|
||||||
adding some python-keystoneclient specific pep8 checks. This will catch common
|
|
||||||
errors so that core devs don't have to.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
|
|
||||||
def check_oslo_namespace_imports(logical_line, blank_before, filename):
|
|
||||||
oslo_namespace_imports = re.compile(
|
|
||||||
r"(((from)|(import))\s+oslo\.)|(from\s+oslo\s+import\s+)")
|
|
||||||
|
|
||||||
if re.match(oslo_namespace_imports, logical_line):
|
|
||||||
msg = ("K333: '%s' must be used instead of '%s'.") % (
|
|
||||||
logical_line.replace('oslo.', 'oslo_'),
|
|
||||||
logical_line)
|
|
||||||
yield(0, msg)
|
|
||||||
|
|
||||||
|
|
||||||
def factory(register):
|
|
||||||
register(check_oslo_namespace_imports)
|
|
@ -709,67 +709,6 @@ class Examples(fixtures.Fixture):
|
|||||||
EXAMPLES_RESOURCE = testresources.FixtureResource(Examples())
|
EXAMPLES_RESOURCE = testresources.FixtureResource(Examples())
|
||||||
|
|
||||||
|
|
||||||
class HackingCode(fixtures.Fixture):
|
|
||||||
"""A fixture to house the various code examples.
|
|
||||||
|
|
||||||
Examples contains various keystoneclient hacking style checks.
|
|
||||||
"""
|
|
||||||
|
|
||||||
oslo_namespace_imports = {
|
|
||||||
'code': """
|
|
||||||
import oslo.utils
|
|
||||||
import oslo_utils
|
|
||||||
import oslo.utils.encodeutils
|
|
||||||
import oslo_utils.encodeutils
|
|
||||||
from oslo import utils
|
|
||||||
from oslo.utils import encodeutils
|
|
||||||
from oslo_utils import encodeutils
|
|
||||||
|
|
||||||
import oslo.serialization
|
|
||||||
import oslo_serialization
|
|
||||||
import oslo.serialization.jsonutils
|
|
||||||
import oslo_serialization.jsonutils
|
|
||||||
from oslo import serialization
|
|
||||||
from oslo.serialization import jsonutils
|
|
||||||
from oslo_serialization import jsonutils
|
|
||||||
|
|
||||||
import oslo.config
|
|
||||||
import oslo_config
|
|
||||||
import oslo.config.cfg
|
|
||||||
import oslo_config.cfg
|
|
||||||
from oslo import config
|
|
||||||
from oslo.config import cfg
|
|
||||||
from oslo_config import cfg
|
|
||||||
|
|
||||||
import oslo.i18n
|
|
||||||
import oslo_i18n
|
|
||||||
import oslo.i18n.log
|
|
||||||
import oslo_i18n.log
|
|
||||||
from oslo import i18n
|
|
||||||
from oslo.i18n import log
|
|
||||||
from oslo_i18n import log
|
|
||||||
""",
|
|
||||||
'expected_errors': [
|
|
||||||
(1, 0, 'K333'),
|
|
||||||
(3, 0, 'K333'),
|
|
||||||
(5, 0, 'K333'),
|
|
||||||
(6, 0, 'K333'),
|
|
||||||
(9, 0, 'K333'),
|
|
||||||
(11, 0, 'K333'),
|
|
||||||
(13, 0, 'K333'),
|
|
||||||
(14, 0, 'K333'),
|
|
||||||
(17, 0, 'K333'),
|
|
||||||
(19, 0, 'K333'),
|
|
||||||
(21, 0, 'K333'),
|
|
||||||
(22, 0, 'K333'),
|
|
||||||
(25, 0, 'K333'),
|
|
||||||
(27, 0, 'K333'),
|
|
||||||
(29, 0, 'K333'),
|
|
||||||
(30, 0, 'K333'),
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Deprecations(fixtures.Fixture):
|
class Deprecations(fixtures.Fixture):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(Deprecations, self).setUp()
|
super(Deprecations, self).setUp()
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# 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 textwrap
|
|
||||||
|
|
||||||
import mock
|
|
||||||
import pep8
|
|
||||||
import testtools
|
|
||||||
|
|
||||||
from keystoneclient.tests.hacking import checks
|
|
||||||
from keystoneclient.tests.unit import client_fixtures
|
|
||||||
|
|
||||||
|
|
||||||
class TestCheckOsloNamespaceImports(testtools.TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
super(TestCheckOsloNamespaceImports, self).setUp()
|
|
||||||
self.useFixture(client_fixtures.Deprecations())
|
|
||||||
|
|
||||||
# We are patching pep8 so that only the check under test is actually
|
|
||||||
# installed.
|
|
||||||
@mock.patch('pep8._checks',
|
|
||||||
{'physical_line': {}, 'logical_line': {}, 'tree': {}})
|
|
||||||
def run_check(self, code):
|
|
||||||
pep8.register_check(checks.check_oslo_namespace_imports)
|
|
||||||
|
|
||||||
lines = textwrap.dedent(code).strip().splitlines(True)
|
|
||||||
|
|
||||||
checker = pep8.Checker(lines=lines)
|
|
||||||
checker.check_all()
|
|
||||||
checker.report._deferred_print.sort()
|
|
||||||
return checker.report._deferred_print
|
|
||||||
|
|
||||||
def assert_has_errors(self, code, expected_errors=None):
|
|
||||||
actual_errors = [e[:3] for e in self.run_check(code)]
|
|
||||||
self.assertEqual(expected_errors or [], actual_errors)
|
|
||||||
|
|
||||||
def test(self):
|
|
||||||
code_ex = self.useFixture(client_fixtures.HackingCode())
|
|
||||||
code = code_ex.oslo_namespace_imports['code']
|
|
||||||
errors = code_ex.oslo_namespace_imports['expected_errors']
|
|
||||||
self.assert_has_errors(code, expected_errors=errors)
|
|
1
tox.ini
1
tox.ini
@ -64,7 +64,6 @@ commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasen
|
|||||||
[hacking]
|
[hacking]
|
||||||
import_exceptions =
|
import_exceptions =
|
||||||
keystoneclient.i18n
|
keystoneclient.i18n
|
||||||
local-check-factory = keystoneclient.tests.hacking.checks.factory
|
|
||||||
|
|
||||||
[testenv:bindep]
|
[testenv:bindep]
|
||||||
# Do not install any requirements. We want this to be fast and work even if
|
# Do not install any requirements. We want this to be fast and work even if
|
||||||
|
Loading…
Reference in New Issue
Block a user