summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorSanyam Khurana <8039608+CuriousLearner@users.noreply.github.com>2018-12-31 10:44:47 +0530
committerNick Coghlan <ncoghlan@gmail.com>2018-12-31 15:14:47 +1000
commitb539cef31c060c7eecc331d25a23b80ded0baf08 (patch)
tree9fed434820ac61d691b3f385a7aeebb897964d73 /Lib
parent1d300ce1d8238136595c8fea76266a4755cd73a2 (diff)
downloadcpython-git-b539cef31c060c7eecc331d25a23b80ded0baf08.tar.gz
bpo-35614: Fix pydoc help() on metaclasses (#11357)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/pydoc.py2
-rw-r--r--Lib/test/test_pydoc.py11
2 files changed, 12 insertions, 1 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 1d84b847cf..59f6e39351 100644
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -1255,7 +1255,7 @@ location listed above.
# List the built-in subclasses, if any:
subclasses = sorted(
- (str(cls.__name__) for cls in object.__subclasses__()
+ (str(cls.__name__) for cls in type.__subclasses__(object)
if not cls.__name__.startswith("_") and cls.__module__ == "builtins"),
key=str.lower
)
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index 409fea4a5e..c58a8b13e7 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -636,6 +636,17 @@ class PydocDocTest(unittest.TestCase):
# Testing that the subclasses section does not appear
self.assertNotIn('Built-in subclasses', text)
+ def test_builtin_on_metaclasses(self):
+ """Tests help on metaclasses.
+
+ When running help() on a metaclasses such as type, it
+ should not contain any "Built-in subclasses" section.
+ """
+ doc = pydoc.TextDoc()
+ text = doc.docclass(type)
+ # Testing that the subclasses section does not appear
+ self.assertNotIn('Built-in subclasses', text)
+
@unittest.skipIf(sys.flags.optimize >= 2,
'Docstrings are omitted with -O2 and above')
@unittest.skipIf(hasattr(sys, 'gettrace') and sys.gettrace(),