Introduce T106 rule for vi modelines
We don't need to have the vi modelines in each source file anymore. We've already fixed them several times. https://review.openstack.org/#/c/66507/ https://review.openstack.org/#/c/68552/ https://review.openstack.org/#/c/69318/ https://review.openstack.org/#/c/70133/ However, newly some files still have it in its header. So we should check it automatically with our HACKING rule. This commit introduces T106 rule for that. Note: This code is copied from Nova's hacking rule. Change-Id: I347307a5145b2760c69085b6ca850d6a9137ffc6 Change-Id: I5c94ef041a39c2377ba6321ace8934f324287bcf Closes-Bug: #1229324
This commit is contained in:
parent
1cee3c662a
commit
fcacf96204
|
@ -11,6 +11,7 @@ Tempest Specific Commandments
|
||||||
- [T102] Cannot import OpenStack python clients in tempest/api tests
|
- [T102] Cannot import OpenStack python clients in tempest/api tests
|
||||||
- [T104] Scenario tests require a services decorator
|
- [T104] Scenario tests require a services decorator
|
||||||
- [T105] Unit tests cannot use setUpClass
|
- [T105] Unit tests cannot use setUpClass
|
||||||
|
- [T106] vim configuration should not be kept in source files.
|
||||||
|
|
||||||
Test Data/Configuration
|
Test Data/Configuration
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
|
@ -21,6 +21,7 @@ PYTHON_CLIENT_RE = re.compile('import (%s)client' % '|'.join(PYTHON_CLIENTS))
|
||||||
TEST_DEFINITION = re.compile(r'^\s*def test.*')
|
TEST_DEFINITION = re.compile(r'^\s*def test.*')
|
||||||
SETUPCLASS_DEFINITION = re.compile(r'^\s*def setUpClass')
|
SETUPCLASS_DEFINITION = re.compile(r'^\s*def setUpClass')
|
||||||
SCENARIO_DECORATOR = re.compile(r'\s*@.*services\(')
|
SCENARIO_DECORATOR = re.compile(r'\s*@.*services\(')
|
||||||
|
VI_HEADER_RE = re.compile(r"^#\s+vim?:.+")
|
||||||
|
|
||||||
|
|
||||||
def import_no_clients_in_api(physical_line, filename):
|
def import_no_clients_in_api(physical_line, filename):
|
||||||
|
@ -58,7 +59,22 @@ def no_setupclass_for_unit_tests(physical_line, filename):
|
||||||
"T105: setUpClass can not be used with unit tests")
|
"T105: setUpClass can not be used with unit tests")
|
||||||
|
|
||||||
|
|
||||||
|
def no_vi_headers(physical_line, line_number, lines):
|
||||||
|
"""Check for vi editor configuration in source files.
|
||||||
|
|
||||||
|
By default vi modelines can only appear in the first or
|
||||||
|
last 5 lines of a source file.
|
||||||
|
|
||||||
|
T106
|
||||||
|
"""
|
||||||
|
# NOTE(gilliard): line_number is 1-indexed
|
||||||
|
if line_number <= 5 or line_number > len(lines) - 5:
|
||||||
|
if VI_HEADER_RE.match(physical_line):
|
||||||
|
return 0, "T106: Don't put vi configuration in source files"
|
||||||
|
|
||||||
|
|
||||||
def factory(register):
|
def factory(register):
|
||||||
register(import_no_clients_in_api)
|
register(import_no_clients_in_api)
|
||||||
register(scenario_tests_need_service_tags)
|
register(scenario_tests_need_service_tags)
|
||||||
register(no_setupclass_for_unit_tests)
|
register(no_setupclass_for_unit_tests)
|
||||||
|
register(no_vi_headers)
|
||||||
|
|
Loading…
Reference in New Issue