Cython has moved to github.

cython-devel

view tests/run/subclasses.pyx @ 1622:4f0327bdebc9

test for temp allocation bug in call
author Robert Bradshaw <robertwb@math.washington.edu>
date Sat Jan 17 01:25:34 2009 -0800 (3 years ago)
parents
children 82d312a9f1fc
line source
1 __doc__ = u"""
2 >>> zoo = Zoo()
3 >>> for cl in (Zoo, Bam, Bar, Foo, Base, Base0): assert isinstance(zoo, cl)
4 >>> fooit(zoo)
5 42
7 >>> bam = Bam()
8 >>> for cl in (Bam, Bar, Foo, Base, Base0): assert isinstance(bam, cl)
9 >>> fooit(bam)
10 42
12 >>> bar = Bar()
13 >>> for cl in (Bar, Foo, Base, Base0): assert isinstance(bar, cl)
14 >>> fooit(bar)
15 42
17 >>> foo = Foo()
18 >>> for cl in (Foo, Base, Base0): assert isinstance(foo, cl)
19 >>> fooit(foo)
20 42
22 >>> base = Base()
23 >>> for cl in (Base, Base0): assert isinstance(base, cl)
24 >>> fooit(base)
25 Traceback (most recent call last):
26 TypeError: Argument 'foo' has incorrect type (expected subclasses.Foo, got subclasses.Base)
28 >>> base0 = Base0()
29 >>> for cl in (Base0,): assert isinstance(base0, cl)
30 >>> fooit(base0)
31 Traceback (most recent call last):
32 TypeError: Argument 'foo' has incorrect type (expected subclasses.Foo, got subclasses.Base0)
33 """
35 cdef class Base0:
36 pass
38 cdef class Base(Base0):
39 pass
41 cdef class Foo(Base):
42 cdef fooit(self):
43 return 42
45 cdef class Bar(Foo):
46 pass
48 cdef class Bam(Bar):
49 pass
51 cdef class Zoo(Bam):
52 pass
55 def fooit(Foo foo):
56 return foo.fooit()