From: Gary Kotton Date: Wed, 2 Dec 2015 14:52:25 +0000 (-0800) Subject: HACKING: fix edge case with log hints X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=0ce4510b35b73c0ecb1e4a1681038058f58c3038;p=openstack-build%2Fneutron-build.git HACKING: fix edge case with log hints A log message with _() was not raised as an error, for example: LOG.info(_('who let the dogs out!')). This should be: LOG.info(_LI('who who who who!')) Change-Id: I040f01b19ff5de00467b80be7399b998534d9a57 Closes-bug: #1522054 --- diff --git a/neutron/hacking/checks.py b/neutron/hacking/checks.py index a8eee49d0..5661b080c 100644 --- a/neutron/hacking/checks.py +++ b/neutron/hacking/checks.py @@ -30,6 +30,9 @@ import six # neutron/tests/unit/hacking/test_checks.py _all_log_levels = { + 'reserved': '_', # this should never be used with a log unless + # it is a variable used for a log message and + # a exception 'error': '_LE', 'info': '_LI', 'warn': '_LW', diff --git a/neutron/pecan_wsgi/hooks/translation.py b/neutron/pecan_wsgi/hooks/translation.py index d3c5f15fb..85d8d65c8 100644 --- a/neutron/pecan_wsgi/hooks/translation.py +++ b/neutron/pecan_wsgi/hooks/translation.py @@ -18,6 +18,7 @@ from pecan import hooks import webob.exc from neutron.api.v2 import base as v2base +from neutron.i18n import _LE LOG = logging.getLogger(__name__) @@ -33,6 +34,6 @@ class ExceptionTranslationHook(hooks.PecanHook): raise to_class(getattr(e, 'msg', e.message)) # leaked unexpected exception, convert to boring old 500 error and # hide message from user in case it contained sensitive details - LOG.exception(_("An unexpected exception was caught: %s") % e) + LOG.exception(_LE("An unexpected exception was caught: %s"), e) raise webob.exc.HTTPInternalServerError( _("An unexpected internal error occurred.")) diff --git a/neutron/tests/unit/hacking/test_checks.py b/neutron/tests/unit/hacking/test_checks.py index 2853fc082..d7295d34b 100644 --- a/neutron/tests/unit/hacking/test_checks.py +++ b/neutron/tests/unit/hacking/test_checks.py @@ -39,6 +39,9 @@ class HackingTestCase(base.BaseTestCase): self.assertEqual( 0, len(list(checks.validate_log_translations(debug, debug, 'f')))) for log in logs: + bad = 'LOG.%s(_("Bad"))' % log + self.assertEqual( + 1, len(list(checks.validate_log_translations(bad, bad, 'f')))) bad = 'LOG.%s("Bad")' % log self.assertEqual( 1, len(list(checks.validate_log_translations(bad, bad, 'f'))))