[Python-checkins] cpython: Closes #29220: Fixed regression in logging.getLevelName().

vinay.sajip python-checkins at python.org
Wed Jan 11 01:58:05 EST 2017


https://hg.python.org/cpython/rev/99ad6e871459
changeset:   106085:99ad6e871459
user:        Vinay Sajip <vinay_sajip at yahoo.co.uk>
date:        Wed Jan 11 06:57:55 2017 +0000
summary:
  Closes #29220: Fixed regression in logging.getLevelName().

files:
  Lib/logging/__init__.py  |  10 +++++++---
  Lib/test/test_logging.py |   6 ++++++
  2 files changed, 13 insertions(+), 3 deletions(-)


diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -131,9 +131,13 @@
 
     Otherwise, the string "Level %s" % level is returned.
     """
-    # See Issues #22386 and #27937 for why it's this way
-    return (_levelToName.get(level) or _nameToLevel.get(level) or
-            "Level %s" % level)
+    # See Issues #22386, #27937 and #29220 for why it's this way
+    result = _levelToName.get(level)
+    if result is None:
+        result = _nameToLevel.get(level)
+    if result is None:
+        result = "Level %s" % level
+    return result
 
 def addLevelName(level, levelName):
     """
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -309,6 +309,12 @@
         self.assertEqual(logging.getLevelName('INFO'), logging.INFO)
         self.assertEqual(logging.getLevelName(logging.INFO), 'INFO')
 
+    def test_regression_29220(self):
+        """See issue #29220 for more information."""
+        logging.addLevelName(logging.INFO, '')
+        self.addCleanup(logging.addLevelName, logging.INFO, 'INFO')
+        self.assertEqual(logging.getLevelName(logging.INFO), '')
+
     def test_issue27935(self):
         fatal = logging.getLevelName('FATAL')
         self.assertEqual(fatal, logging.FATAL)

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list