test case for class decorators
authorStefan Behnel <scoder@users.berlios.de>
Fri, 26 Jun 2009 20:33:20 +0000 (22:33 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Fri, 26 Jun 2009 20:33:20 +0000 (22:33 +0200)
tests/run/classdecorators_T336.pyx [new file with mode: 0644]

diff --git a/tests/run/classdecorators_T336.pyx b/tests/run/classdecorators_T336.pyx
new file mode 100644 (file)
index 0000000..07444c7
--- /dev/null
@@ -0,0 +1,44 @@
+__doc__ = u"""
+>>> print('\\n'.join(calls))
+Py-Honk PyTestClass
+PyTestClass
+Py-Hello PyTestClass
+PyTestClass
+Py-Done PyTestClass
+
+>>> c = PyTestClass()
+Ho, Ho, Ho!
+"""
+
+calls = []
+
+class print_msg(object):
+    def __init__(self, message):
+        self.msg = message
+    def __call__(self, c):
+        calls.append( self.msg + c.__name__ )
+        return c
+
+def print_name(c):
+    calls.append( c.__name__ )
+    return c
+
+@print_msg(u"Py-Done ")
+@print_name
+@print_msg(u"Py-Hello ")
+@print_name
+@print_msg(u"Py-Honk ")
+class PyTestClass(object):
+    def __init__(self):
+        print u"Ho, Ho, Ho!"
+
+# not currently working:
+#
+## @print_msg("Cy-Done ")
+## @print_name
+## @print_msg("Cy-Hello ")
+## @print_name
+## @print_msg("Cy-Honk ")
+## cdef class CyTestClass(object):
+##     def __init__(self):
+##         print u"Ho, Ho, Ho!"