summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/logging/__init__.py11
-rw-r--r--Lib/test/test_logging.py8
2 files changed, 14 insertions, 5 deletions
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index fb866f3..49a0692 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -133,11 +133,12 @@ def getLevelName(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
+ 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):
"""
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 6a91152..9f482e1 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -319,6 +319,14 @@ class BuiltinLevelsTest(BaseTest):
fatal = logging.getLevelName('FATAL')
self.assertEqual(fatal, logging.FATAL)
+ 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."""