[pypy-commit] pypy py3.5: Fix logging.getLevelName, applying #29220 CPython issue.
robert-zaremba
pypy.commits at gmail.com
Tue Feb 28 13:09:37 EST 2017
Author: Robert Zaremba <robert.zaremba at scale-it.pl>
Branch: py3.5
Changeset: r90430:55230b1507ef
Date: 2017-02-28 18:33 +0100
http://bitbucket.org/pypy/pypy/changeset/55230b1507ef/
Log: Fix logging.getLevelName, applying #29220 CPython issue.
The getLevelName function incorrectly fallsback. 0 is correct value
returned from the names map, but when using `or` check it falsifies
and fallback to the "level" case.
http://buildbot.pypy.org/summary/longrepr?testname=unmodified&builde
r=pypy-c-jit-linux-x86-64&build=4416&mod=lib-
python.3.test.test_logging
diff --git a/lib-python/3/logging/__init__.py b/lib-python/3/logging/__init__.py
--- a/lib-python/3/logging/__init__.py
+++ b/lib-python/3/logging/__init__.py
@@ -129,9 +129,14 @@
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):
"""
More information about the pypy-commit
mailing list