Issue #22386: fixed regression.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 11 Sep 2014 22:06:09 +0000 (23:06 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 11 Sep 2014 22:06:09 +0000 (23:06 +0100)
Doc/library/logging.rst
Lib/logging/__init__.py
Lib/test/test_logging.py

index a3e2770c899382fbc12c089962ced1066a2f32d8..9983711644366363368d5766b96832e1958fa03d 100644 (file)
@@ -1052,8 +1052,8 @@ functions.
    .. versionchanged:: 3.4
       In Python versions earlier than 3.4, this function could also be passed a
       text level, and would return the corresponding numeric value of the level.
-      This undocumented behaviour was a mistake, and has been removed in Python
-      3.4.
+      This undocumented behaviour was considered a mistake, and was removed in
+      Python 3.4, but reinstated in 3.4.2 due to retain backward compatibility.
 
 .. function:: makeLogRecord(attrdict)
 
index a61c2b07c9d027edfd3f9a2616a725e068c4b9c3..7fb3a352e597a1dff0b45bb7da7e66e8f21c4d51 100644 (file)
@@ -129,7 +129,8 @@ def getLevelName(level):
 
     Otherwise, the string "Level %s" % level is returned.
     """
-    return _levelToName.get(level, ("Level %s" % level))
+    # See Issue #22386 for the reason for this convoluted expression
+    return _levelToName.get(level, _nameToLevel.get(level, ("Level %s" % level)))
 
 def addLevelName(level, levelName):
     """
index 6f6dd18d800d3fb5f167caee3292878c029bd843..d5aec9ae443269bc0e2c0f448624df6ffa16878e 100644 (file)
@@ -313,6 +313,10 @@ class BuiltinLevelsTest(BaseTest):
             ('INF.BADPARENT', 'INFO', '4'),
         ])
 
+    def test_regression_22386(self):
+        """See issue #22386 for more information."""
+        self.assertEqual(logging.getLevelName('INFO'), logging.INFO)
+        self.assertEqual(logging.getLevelName(logging.INFO), 'INFO')
 
 class BasicFilterTest(BaseTest):