diff options
-rw-r--r-- | Lib/test/test_descr.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index fc5f2ea..308ed44 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -2955,6 +2955,25 @@ def imulbug(): y *= "foo" vereq(y, (x, "foo")) +def docdescriptor(): + # SF bug 542984 + if verbose: print "Testing __doc__ descriptor..." + class DocDescr(object): + def __get__(self, object, otype): + if object: + object = object.__class__.__name__ + ' instance' + if otype: + otype = otype.__name__ + return 'object=%s; type=%s' % (object, otype) + class OldClass: + __doc__ = DocDescr() + class NewClass(object): + __doc__ = DocDescr() + vereq(OldClass.__doc__, 'object=None; type=OldClass') + vereq(OldClass().__doc__, 'object=OldClass instance; type=OldClass') + vereq(NewClass.__doc__, 'object=None; type=NewClass') + vereq(NewClass().__doc__, 'object=NewClass instance; type=NewClass') + def test_main(): class_docstrings() lists() @@ -3019,6 +3038,7 @@ def test_main(): pickleslots() funnynew() imulbug() + docdescriptor() if verbose: print "All OK" if __name__ == "__main__": |