mirror of
https://github.com/python/cpython.git
synced 2025-08-09 11:29:45 +00:00
[3.13] bpo-24766: doc= argument to subclasses of property not handled correctly (GH-2487) (GH-120305)
(cherry picked from commit 4829522b8d
)
Co-authored-by: E. M. Bray <erik.bray@lri.fr>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
7993268beb
commit
f386cc9620
3 changed files with 39 additions and 15 deletions
|
@ -463,6 +463,40 @@ class PropertySubclassTests(unittest.TestCase):
|
|||
self.assertEqual(p.__doc__, "user")
|
||||
self.assertEqual(p2.__doc__, "user")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_prefer_explicit_doc(self):
|
||||
# Issue 25757: subclasses of property lose docstring
|
||||
self.assertEqual(property(doc="explicit doc").__doc__, "explicit doc")
|
||||
self.assertEqual(PropertySub(doc="explicit doc").__doc__, "explicit doc")
|
||||
|
||||
class Foo:
|
||||
spam = PropertySub(doc="spam explicit doc")
|
||||
|
||||
@spam.getter
|
||||
def spam(self):
|
||||
"""ignored as doc already set"""
|
||||
return 1
|
||||
|
||||
def _stuff_getter(self):
|
||||
"""ignored as doc set directly"""
|
||||
stuff = PropertySub(doc="stuff doc argument", fget=_stuff_getter)
|
||||
|
||||
#self.assertEqual(Foo.spam.__doc__, "spam explicit doc")
|
||||
self.assertEqual(Foo.stuff.__doc__, "stuff doc argument")
|
||||
|
||||
def test_property_no_doc_on_getter(self):
|
||||
# If a property's getter has no __doc__ then the property's doc should
|
||||
# be None; test that this is consistent with subclasses as well; see
|
||||
# GH-2487
|
||||
class NoDoc:
|
||||
@property
|
||||
def __doc__(self):
|
||||
raise AttributeError
|
||||
|
||||
self.assertEqual(property(NoDoc()).__doc__, None)
|
||||
self.assertEqual(PropertySub(NoDoc()).__doc__, None)
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_property_setter_copies_getter_docstring(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue