Merge "Remove hacking check for log translation"
This commit is contained in:
commit
3a6c184d52
@ -12,9 +12,6 @@ Cinder Specific Commandments
|
|||||||
- [N322] Ensure default arguments are not mutable.
|
- [N322] Ensure default arguments are not mutable.
|
||||||
- [N323] Add check for explicit import of _() to ensure proper translation.
|
- [N323] Add check for explicit import of _() to ensure proper translation.
|
||||||
- [N325] str() and unicode() cannot be used on an exception. Remove or use six.text_type().
|
- [N325] str() and unicode() cannot be used on an exception. Remove or use six.text_type().
|
||||||
- [N328] LOG.info messages require translations `_LI()`.
|
|
||||||
- [N329] LOG.exception and LOG.error messages require translations `_LE()`.
|
|
||||||
- [N330] LOG.warning messages require translations `_LW()`.
|
|
||||||
- [N336] Must use a dict comprehension instead of a dict constructor with a sequence of key-value pairs.
|
- [N336] Must use a dict comprehension instead of a dict constructor with a sequence of key-value pairs.
|
||||||
- [C301] timeutils.utcnow() from oslo_utils should be used instead of datetime.now().
|
- [C301] timeutils.utcnow() from oslo_utils should be used instead of datetime.now().
|
||||||
- [C302] six.text_type should be used instead of unicode.
|
- [C302] six.text_type should be used instead of unicode.
|
||||||
|
@ -54,12 +54,6 @@ oslo_namespace_imports = re.compile(r"from[\s]*oslo[.](concurrency|db"
|
|||||||
"|config|utils|serialization|log)")
|
"|config|utils|serialization|log)")
|
||||||
no_contextlib_nested = re.compile(r"\s*with (contextlib\.)?nested\(")
|
no_contextlib_nested = re.compile(r"\s*with (contextlib\.)?nested\(")
|
||||||
|
|
||||||
log_translation_LI = re.compile(
|
|
||||||
r"(.)*LOG\.(info)\(\s*(_\(|'|\")")
|
|
||||||
log_translation_LE = re.compile(
|
|
||||||
r"(.)*LOG\.(exception|error)\(\s*(_\(|'|\")")
|
|
||||||
log_translation_LW = re.compile(
|
|
||||||
r"(.)*LOG\.(warning|warn)\(\s*(_\(|'|\")")
|
|
||||||
logging_instance = re.compile(
|
logging_instance = re.compile(
|
||||||
r"(.)*LOG\.(warning|info|debug|error|exception)\(")
|
r"(.)*LOG\.(warning|info|debug|error|exception)\(")
|
||||||
|
|
||||||
@ -366,24 +360,6 @@ class CheckOptRegistrationArgs(BaseASTChecker):
|
|||||||
return super(CheckOptRegistrationArgs, self).generic_visit(node)
|
return super(CheckOptRegistrationArgs, self).generic_visit(node)
|
||||||
|
|
||||||
|
|
||||||
def validate_log_translations(logical_line, filename):
|
|
||||||
# Translations are not required in the test directory.
|
|
||||||
# This will not catch all instances of violations, just direct
|
|
||||||
# misuse of the form LOG.info('Message').
|
|
||||||
if "cinder/tests" in filename:
|
|
||||||
return
|
|
||||||
msg = "N328: LOG.info messages require translations `_LI()`!"
|
|
||||||
if log_translation_LI.match(logical_line):
|
|
||||||
yield (0, msg)
|
|
||||||
msg = ("N329: LOG.exception and LOG.error messages require "
|
|
||||||
"translations `_LE()`!")
|
|
||||||
if log_translation_LE.match(logical_line):
|
|
||||||
yield (0, msg)
|
|
||||||
msg = "N330: LOG.warning messages require translations `_LW()`!"
|
|
||||||
if log_translation_LW.match(logical_line):
|
|
||||||
yield (0, msg)
|
|
||||||
|
|
||||||
|
|
||||||
def check_datetime_now(logical_line, noqa):
|
def check_datetime_now(logical_line, noqa):
|
||||||
if noqa:
|
if noqa:
|
||||||
return
|
return
|
||||||
@ -496,7 +472,6 @@ def factory(register):
|
|||||||
register(check_datetime_now)
|
register(check_datetime_now)
|
||||||
register(check_timeutils_strtime)
|
register(check_timeutils_strtime)
|
||||||
register(check_timeutils_isotime)
|
register(check_timeutils_isotime)
|
||||||
register(validate_log_translations)
|
|
||||||
register(check_unicode_usage)
|
register(check_unicode_usage)
|
||||||
register(check_no_print_statements)
|
register(check_no_print_statements)
|
||||||
register(check_no_log_audit)
|
register(check_no_log_audit)
|
||||||
|
@ -105,7 +105,7 @@ class HackingTestCase(test.TestCase):
|
|||||||
"msg = _('My message')",
|
"msg = _('My message')",
|
||||||
"cinder.tests.unit/other_files.py"))))
|
"cinder.tests.unit/other_files.py"))))
|
||||||
self.assertEqual(0, len(list(checks.check_explicit_underscore_import(
|
self.assertEqual(0, len(list(checks.check_explicit_underscore_import(
|
||||||
"from cinder.i18n import _LE, _, _LW",
|
"from cinder.i18n import _",
|
||||||
"cinder.tests.unit/other_files2.py"))))
|
"cinder.tests.unit/other_files2.py"))))
|
||||||
self.assertEqual(0, len(list(checks.check_explicit_underscore_import(
|
self.assertEqual(0, len(list(checks.check_explicit_underscore_import(
|
||||||
"msg = _('My message')",
|
"msg = _('My message')",
|
||||||
@ -120,9 +120,6 @@ class HackingTestCase(test.TestCase):
|
|||||||
self.assertEqual(0, len(list(checks.check_explicit_underscore_import(
|
self.assertEqual(0, len(list(checks.check_explicit_underscore_import(
|
||||||
"LOG.info('My info message')",
|
"LOG.info('My info message')",
|
||||||
"cinder.tests.unit/other_files4.py"))))
|
"cinder.tests.unit/other_files4.py"))))
|
||||||
self.assertEqual(0, len(list(checks.check_explicit_underscore_import(
|
|
||||||
"from cinder.i18n import _LW",
|
|
||||||
"cinder.tests.unit/other_files5.py"))))
|
|
||||||
self.assertEqual(1, len(list(checks.check_explicit_underscore_import(
|
self.assertEqual(1, len(list(checks.check_explicit_underscore_import(
|
||||||
"msg = _('My message')",
|
"msg = _('My message')",
|
||||||
"cinder.tests.unit/other_files5.py"))))
|
"cinder.tests.unit/other_files5.py"))))
|
||||||
@ -310,26 +307,6 @@ class HackingTestCase(test.TestCase):
|
|||||||
self.assertEqual(0, len(list(checks.check_timeutils_strtime(
|
self.assertEqual(0, len(list(checks.check_timeutils_strtime(
|
||||||
"strftime"))))
|
"strftime"))))
|
||||||
|
|
||||||
def test_validate_log_translations(self):
|
|
||||||
self.assertEqual(1, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.info('foo')", "foo.py"))))
|
|
||||||
self.assertEqual(1, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.warning('foo')", "foo.py"))))
|
|
||||||
self.assertEqual(1, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.error('foo')", "foo.py"))))
|
|
||||||
self.assertEqual(1, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.exception('foo')", "foo.py"))))
|
|
||||||
self.assertEqual(0, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.info('foo')", "cinder/tests/foo.py"))))
|
|
||||||
self.assertEqual(0, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.info(_LI('foo')", "foo.py"))))
|
|
||||||
self.assertEqual(0, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.warning(_LW('foo')", "foo.py"))))
|
|
||||||
self.assertEqual(0, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.error(_LE('foo')", "foo.py"))))
|
|
||||||
self.assertEqual(0, len(list(checks.validate_log_translations(
|
|
||||||
"LOG.exception(_LE('foo')", "foo.py"))))
|
|
||||||
|
|
||||||
def test_check_unicode_usage(self):
|
def test_check_unicode_usage(self):
|
||||||
self.assertEqual(1, len(list(checks.check_unicode_usage(
|
self.assertEqual(1, len(list(checks.check_unicode_usage(
|
||||||
"unicode(msg)", False))))
|
"unicode(msg)", False))))
|
||||||
|
Loading…
Reference in New Issue
Block a user