Add hacking check to ensure not use xrange()

Added hacking check to ensure not to use xrange.  Also,
fixed issues with EoF missing newline [W391].

Change-Id: Iba8d240c042e46cb34eb6ed057534d62efb6f903
Closes-Bug: #1538118
This commit is contained in:
Tin Lam 2016-03-10 19:10:46 -06:00
parent 972cdba6ee
commit 8d0b16292d
11 changed files with 28 additions and 8 deletions

View File

@ -23,6 +23,7 @@ Octavia Specific Commandments
assertEqual(A in B, False) or assertEqual(False, A in B) to the more
specific assertIn/NotIn(A, B)
- [O339] LOG.warn() is not allowed. Use LOG.warning()
- [O340] Don't use xrange()
Creating Unit Tests
-------------------

View File

@ -73,6 +73,8 @@ assert_not_equal_end_with_none_re = re.compile(
r"(.)*assertNotEqual\(.+, None\)")
assert_not_equal_start_with_none_re = re.compile(
r"(.)*assertNotEqual\(None, .+\)")
assert_no_xrange_re = re.compile(
r"\s*xrange\s*\(")
def _directory_to_check_translation(filename):
@ -209,6 +211,15 @@ def no_log_warn(logical_line):
yield(0, "O339:Use LOG.warning() rather than LOG.warn()")
def no_xrange(logical_line):
"""Disallow 'xrange()'
O340
"""
if assert_no_xrange_re.match(logical_line):
yield(0, "O340: Do not use xrange().")
def factory(register):
register(assert_true_instance)
register(assert_equal_or_not_none)
@ -220,3 +231,4 @@ def factory(register):
register(no_mutable_default_args)
register(assert_equal_in)
register(no_log_warn)
register(no_xrange)

View File

@ -135,3 +135,10 @@ class HackingTestCase(base.BaseTestCase):
self.assertEqual(0, len(list(checks.no_log_warn(
"LOG.warning()"))))
def test_no_xrange(self):
self.assertEqual(1, len(list(checks.no_xrange(
"xrange(45)"))))
self.assertEqual(0, len(list(checks.no_xrange(
"range(45)"))))