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())
|
||||
|
||||
|
||||
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):
|
||||
def setUp(self):
|
||||
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]
|
||||
import_exceptions =
|
||||
keystoneclient.i18n
|
||||
local-check-factory = keystoneclient.tests.hacking.checks.factory
|
||||
|
||||
[testenv:bindep]
|
||||
# Do not install any requirements. We want this to be fast and work even if
|
||||
|
Loading…
Reference in New Issue
Block a user