make __doc__ mutable on heaptypes (closes #12773)
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index aade9f5..2a9f880 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -4261,6 +4261,19 @@
m = str(cm.exception)
self.assertEqual("'foo' in __slots__ conflicts with class variable", m)
+ def test_set_doc(self):
+ class X:
+ "elephant"
+ X.__doc__ = "banana"
+ self.assertEqual(X.__doc__, "banana")
+ with self.assertRaises(TypeError) as cm:
+ type(list).__dict__["__doc__"].__set__(list, "blah")
+ self.assertIn("can't set list.__doc__", str(cm.exception))
+ with self.assertRaises(TypeError) as cm:
+ type(X).__dict__["__doc__"].__delete__(X)
+ self.assertIn("can't delete X.__doc__", str(cm.exception))
+ self.assertEqual(X.__doc__, "banana")
+
class DictProxyTests(unittest.TestCase):
def setUp(self):
class C(object):