test case for ticket #18
authorStefan Behnel <scoder@users.berlios.de>
Sun, 8 Mar 2009 13:18:27 +0000 (14:18 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Sun, 8 Mar 2009 13:18:27 +0000 (14:18 +0100)
tests/bugs/class_attribute_init_values_T18.pyx [new file with mode: 0644]

diff --git a/tests/bugs/class_attribute_init_values_T18.pyx b/tests/bugs/class_attribute_init_values_T18.pyx
new file mode 100644 (file)
index 0000000..7372275
--- /dev/null
@@ -0,0 +1,55 @@
+__doc__ = u"""
+>>> f = PyFoo()
+>>> print(f.bar)
+5
+>>> print(f.baz)
+someval
+
+>>> f = MyPyFoo()
+>>> print(f.bar)
+7
+>>> print(f.baz)
+anotherval
+
+>>> f = CyFoo()
+>>> print(f.bar)
+5
+>>> print(f.baz)
+anotherval
+
+>>> f = MyCyFoo()
+>>> print(f.bar)
+7
+>>> print(f.baz)
+anotherval
+
+>>> f = AnotherFoo()
+>>> print(f.bar)
+8
+>>> print(f.baz)
+yetanotherval
+"""
+
+# this works:
+
+class PyFoo(object):
+   bar = 5
+   baz = u"someval"
+
+class MyPyFoo(PyFoo):
+   bar = 7
+   baz = u"anotherval"
+
+# this doesn't:
+
+cdef class CyFoo:
+    cdef public int bar = 5
+    cdef public object baz = u"someval"
+
+cdef class MyCyFoo(CyFoo):
+    cdef public int bar = 7
+    cdef public object baz = u"anotherval"
+
+class AnotherFoo(CyFoo):
+    bar = 8
+    baz = u"yetanotherval"