summaryrefslogtreecommitdiffstats
path: root/Lib/test/pydocfodder.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/pydocfodder.py')
-rw-r--r--Lib/test/pydocfodder.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/pydocfodder.py b/Lib/test/pydocfodder.py
index 7ccac5e..becdf22 100644
--- a/Lib/test/pydocfodder.py
+++ b/Lib/test/pydocfodder.py
@@ -177,3 +177,34 @@ class D_new(B_new, C_new):
"Method defined in C and D."
def D_method(self):
"Method defined in D."
+
+class FunkyProperties(object):
+ """From SF bug 472347, by Roeland Rengelink.
+
+ Property getters etc may not be vanilla functions or methods,
+ and this used to make GUI pydoc blow up.
+ """
+
+ def __init__(self):
+ self.desc = {'x':0}
+
+ class get_desc:
+ def __init__(self, attr):
+ self.attr = attr
+ def __call__(self, inst):
+ print 'Get called', self, inst
+ return inst.desc[self.attr]
+ class set_desc:
+ def __init__(self, attr):
+ self.attr = attr
+ def __call__(self, inst, val):
+ print 'Set called', self, inst, val
+ inst.desc[self.attr] = val
+ class del_desc:
+ def __init__(self, attr):
+ self.attr = attr
+ def __call__(self, inst):
+ print 'Del called', self, inst
+ del inst.desc[self.attr]
+
+ x = property(get_desc('x'), set_desc('x'), del_desc('x'), 'prop x')