Issue #23008: Fixed resolving attributes with boolean value is False in pydoc.

This commit is contained in:
Serhiy Storchaka 2015-04-21 21:09:48 +03:00
parent d73aca769f
commit b6076fb13c
3 changed files with 11 additions and 1 deletions

View File

@ -1590,7 +1590,7 @@ def resolve(thing, forceload=0):
"""Given an object or a path to an object, get the object and its name.""" """Given an object or a path to an object, get the object and its name."""
if isinstance(thing, str): if isinstance(thing, str):
object = locate(thing, forceload) object = locate(thing, forceload)
if not object: if object is None:
raise ImportError('no Python documentation found for %r' % thing) raise ImportError('no Python documentation found for %r' % thing)
return object, thing return object, thing
else: else:

View File

@ -1029,6 +1029,14 @@ class PydocWithMetaClasses(unittest.TestCase):
print_diffs(expected_text, result) print_diffs(expected_text, result)
self.fail("outputs are not equal, see diff above") self.fail("outputs are not equal, see diff above")
def test_resolve_false(self):
# Issue #23008: pydoc enum.{,Int}Enum failed
# because bool(enum.Enum) is False.
with captured_stdout() as help_io:
pydoc.help('enum.Enum')
helptext = help_io.getvalue()
self.assertIn('class Enum', helptext)
@reap_threads @reap_threads
def test_main(): def test_main():

View File

@ -31,6 +31,8 @@ Core and Builtins
Library Library
------- -------
- Issue #23008: Fixed resolving attributes with boolean value is False in pydoc.
- Fix asyncio issue 235: LifoQueue and PriorityQueue's put didn't - Fix asyncio issue 235: LifoQueue and PriorityQueue's put didn't
increment unfinished tasks (this bug was introduced in 3.4.3 when increment unfinished tasks (this bug was introduced in 3.4.3 when
JoinableQueue was merged with Queue). JoinableQueue was merged with Queue).