From: Stefan Behnel Date: Fri, 26 Jun 2009 20:33:20 +0000 (+0200) Subject: test case for class decorators X-Git-Tag: 0.12.alpha0~284^2~1 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=0c2e63ade06d6172a1b49afbffd6c959897bc76a;p=cython.git test case for class decorators --- diff --git a/tests/run/classdecorators_T336.pyx b/tests/run/classdecorators_T336.pyx new file mode 100644 index 00000000..07444c7b --- /dev/null +++ b/tests/run/classdecorators_T336.pyx @@ -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!"