Merged pull request #12 from bhy/T423.
[cython.git] / tests / run / classdecorators_T336.pyx
1 # ticket: 336
2
3 __doc__ = u"""
4 >>> print('\\n'.join(calls))
5 Py-Honk PyTestClass
6 PyTestClass
7 Py-Hello PyTestClass
8 PyTestClass
9 Py-Done PyTestClass
10
11 >>> c = PyTestClass()
12 Ho, Ho, Ho!
13 """
14
15 calls = []
16
17 class print_msg(object):
18     def __init__(self, message):
19         self.msg = message
20     def __call__(self, c):
21         calls.append( self.msg + c.__name__ )
22         return c
23
24 def print_name(c):
25     calls.append( c.__name__ )
26     return c
27
28 @print_msg(u"Py-Done ")
29 @print_name
30 @print_msg(u"Py-Hello ")
31 @print_name
32 @print_msg(u"Py-Honk ")
33 class PyTestClass(object):
34     def __init__(self):
35         print u"Ho, Ho, Ho!"
36
37 # not currently working:
38 #
39 ## @print_msg("Cy-Done ")
40 ## @print_name
41 ## @print_msg("Cy-Hello ")
42 ## @print_name
43 ## @print_msg("Cy-Honk ")
44 ## cdef class CyTestClass(object):
45 ##     def __init__(self):
46 ##         print u"Ho, Ho, Ho!"