]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
HACKING: fix edge case with log hints
authorGary Kotton <gkotton@vmware.com>
Wed, 2 Dec 2015 14:52:25 +0000 (06:52 -0800)
committerGary Kotton <gkotton@vmware.com>
Wed, 2 Dec 2015 14:52:25 +0000 (06:52 -0800)
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

neutron/hacking/checks.py
neutron/pecan_wsgi/hooks/translation.py
neutron/tests/unit/hacking/test_checks.py

index a8eee49d0b465d6226d5edd3545a21e95c58bce0..5661b080c641fd1e6616783cc2711ec7621891db 100644 (file)
@@ -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',
index d3c5f15fb3c844f595a08a72096b4cd2ecf6eb00..85d8d65c8d457d8e9c3748f5196d63898cdc5d4a 100644 (file)
@@ -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."))
index 2853fc08267381960e1be41358fc475b539ba9e7..d7295d34b2f93d111a56f41910cbce44403055e9 100644 (file)
@@ -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'))))