diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 264e407e47c..306dcafae06 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1588,7 +1588,7 @@ def resolve(thing, forceload=0): """Given an object or a path to an object, get the object and its name.""" if isinstance(thing, str): object = locate(thing, forceload) - if not object: + if object is None: raise ImportError('''\ No Python documentation found for %r. Use help() to get the interactive help utility. diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index 50ed4d51ec0..6a967c30ab0 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -1006,6 +1006,14 @@ class PydocWithMetaClasses(unittest.TestCase): result = output.getvalue().strip() self.assertEqual(expected_text, result) + 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 def test_main(): diff --git a/Misc/NEWS b/Misc/NEWS index 515a6ef0ad1..0c384813515 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -15,6 +15,8 @@ Core and Builtins Library ------- +- Issue #23008: Fixed resolving attributes with boolean value is False in pydoc. + - Fix asyncio issue 235: LifoQueue and PriorityQueue's put didn't increment unfinished tasks (this bug was introduced when JoinableQueue was merged with Queue).