bpo-36326: Let inspect.getdoc() find docstrings for __slots__ (GH-12498)
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index b9072e0..bc675aa 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -375,6 +375,11 @@
self.assertEqual(inspect.getsource(obj),
self.sourcerange(top, bottom))
+class SlotUser:
+ 'Docstrings for __slots__'
+ __slots__ = {'power': 'measured in kilowatts',
+ 'distance': 'measured in kilometers'}
+
class TestRetrievingSourceCode(GetSourceBase):
fodderModule = mod
@@ -429,6 +434,10 @@
'A longer,\n\nindented\n\ndocstring.')
self.assertEqual(inspect.getdoc(git.abuse),
'Another\n\ndocstring\n\ncontaining\n\ntabs')
+ self.assertEqual(inspect.getdoc(SlotUser.power),
+ 'measured in kilowatts')
+ self.assertEqual(inspect.getdoc(SlotUser.distance),
+ 'measured in kilometers')
@unittest.skipIf(sys.flags.optimize >= 2,
"Docstrings are omitted with -O2 and above")
diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py
index 485ffe2..7f7839d 100644
--- a/Lib/test/test_statistics.py
+++ b/Lib/test/test_statistics.py
@@ -2051,7 +2051,7 @@
nd = statistics.NormalDist(300, 23)
with self.assertRaises(TypeError):
vars(nd)
- self.assertEqual(nd.__slots__, ('mu', 'sigma'))
+ self.assertEqual(tuple(nd.__slots__), ('mu', 'sigma'))
def test_instantiation_and_attributes(self):
nd = statistics.NormalDist(500, 17)