Enforce style check for assertIsNone
The following checks is added in this commit: * enforce assertIsNone instead of assertEqual with a None Change-Id: Idc7c5cb53060dad544bb9b8659e7220b7cd41e56 Partial-Implements: blueprint mistral-hacking
This commit is contained in:
parent
1eff558e43
commit
8aedd496d6
|
@ -0,0 +1,10 @@
|
|||
Style Commandments
|
||||
==================
|
||||
|
||||
Read the OpenStack Style Commandments http://docs.openstack.org/developer/hacking/
|
||||
|
||||
Mistral Specific Commandments
|
||||
-----------------------------
|
||||
|
||||
- [M318] Change assertEqual(A, None) or assertEqual(None, A) by optimal assert
|
||||
like assertIsNone(A)
|
|
@ -30,6 +30,23 @@ import six
|
|||
oslo_namespace_imports_dot = re.compile(r"import[\s]+oslo[.][^\s]+")
|
||||
oslo_namespace_imports_from_dot = re.compile(r"from[\s]+oslo[.]")
|
||||
oslo_namespace_imports_from_root = re.compile(r"from[\s]+oslo[\s]+import[\s]+")
|
||||
assert_equal_end_with_none_re = re.compile(
|
||||
r"(.)*assertEqual\((\w|\.|\'|\"|\[|\])+, None\)")
|
||||
assert_equal_start_with_none_re = re.compile(
|
||||
r"(.)*assertEqual\(None, (\w|\.|\'|\"|\[|\])+\)")
|
||||
|
||||
|
||||
def assert_equal_none(logical_line):
|
||||
"""Check for assertEqual(A, None) or assertEqual(None, A) sentences
|
||||
|
||||
M318
|
||||
"""
|
||||
msg = ("M318: assertEqual(A, None) or assertEqual(None, A) "
|
||||
"sentences not allowed. Use assertIsNone instead.")
|
||||
res = (assert_equal_start_with_none_re.match(logical_line) or
|
||||
assert_equal_end_with_none_re.match(logical_line))
|
||||
if res:
|
||||
yield (0, msg)
|
||||
|
||||
|
||||
def check_oslo_namespace_imports(logical_line):
|
||||
|
@ -210,5 +227,6 @@ class CheckForLoggingIssues(BaseASTChecker):
|
|||
|
||||
|
||||
def factory(register):
|
||||
register(assert_equal_none)
|
||||
register(check_oslo_namespace_imports)
|
||||
register(CheckForLoggingIssues)
|
||||
|
|
|
@ -59,6 +59,16 @@ class BaseLoggingCheckTest(base.BaseTest):
|
|||
|
||||
self.assertEqual(expected_errors or [], actual_errors)
|
||||
|
||||
def test_assert_equal_none(self):
|
||||
self.assertEqual(len(list(checks.assert_equal_none(
|
||||
"self.assertEqual(A, None)"))), 1)
|
||||
|
||||
self.assertEqual(len(list(checks.assert_equal_none(
|
||||
"self.assertEqual(None, A)"))), 1)
|
||||
|
||||
self.assertEqual(
|
||||
len(list(checks.assert_equal_none("self.assertIsNone()"))), 0)
|
||||
|
||||
|
||||
class TestLoggingWithWarn(BaseLoggingCheckTest):
|
||||
|
||||
|
|
Loading…
Reference in New Issue