]> granicus.if.org Git - python/commitdiff
Issue #29220: Improved fix and test.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Wed, 11 Jan 2017 17:35:36 +0000 (17:35 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Wed, 11 Jan 2017 17:35:36 +0000 (17:35 +0000)
Lib/logging/__init__.py
Lib/test/test_logging.py

index 22744e18b0733869b21373daa5c14bb1478cc2c9..6455f39ce870b33430a7b3c16277cec12f106bf7 100644 (file)
@@ -129,9 +129,14 @@ def getLevelName(level):
 
     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 not None:
+        return result
+    result = _nameToLevel.get(level)
+    if result is not None:
+        return result
+    return "Level %s" % level
 
 def addLevelName(level, levelName):
     """
index 0e70ccd5f0ee7467c65182ad0cdde5f12545438f..1c850456b14d497bd6c549452362e7c1afe7fd68 100644 (file)
@@ -308,6 +308,14 @@ class BuiltinLevelsTest(BaseTest):
         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), '')
+        self.assertEqual(logging.getLevelName(logging.NOTSET), 'NOTSET')
+        self.assertEqual(logging.getLevelName('NOTSET'), logging.NOTSET)
+
 class BasicFilterTest(BaseTest):
 
     """Test the bundled Filter class."""