summaryrefslogtreecommitdiff
path: root/tests/run/versioned_pxds.srctree
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/versioned_pxds.srctree')
-rw-r--r--tests/run/versioned_pxds.srctree79
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/run/versioned_pxds.srctree b/tests/run/versioned_pxds.srctree
new file mode 100644
index 000000000..fb46cb26f
--- /dev/null
+++ b/tests/run/versioned_pxds.srctree
@@ -0,0 +1,79 @@
+# mode: run
+# tag: pxd
+
+"""
+PYTHON setup.py build_ext --inplace
+PYTHON -c "import runner"
+"""
+
+######## setup.py ########
+
+from Cython.Build.Dependencies import cythonize
+
+from distutils.core import setup, Extension
+
+setup(
+ ext_modules=cythonize([
+ Extension("pkg.m1.a", ["pkg/m1/a.pyx"]),
+ Extension("pkg.m2.b", ["pkg/m2/b.pyx"])
+ ]),
+)
+
+######## pkg/__init__.py ########
+
+######## pkg/m1/__init__.py ########
+
+
+######## pkg/m1/a.pyx ########
+
+cdef class A:
+ def __init__(self):
+ self.x = 5
+
+######## pkg/m1/a.pxd ########
+
+to be ignored if there is a more specific file
+
+######## pkg/m1/a.cython-2.pxd ########
+
+very outdated, not to be picked up
+
+######## pkg/m1/a.cython-20.pxd ########
+
+outdated, not to be picked up
+
+######## pkg/m1/a.cython-29.pxd ########
+
+# closest version should get found!
+
+cdef class A:
+ cdef public float x
+
+######## pkg/m1/a.cython-300000.pxd ########
+
+Invalid distant future syntax right here!
+
+######## pkg/m1/a.cython-100000.pxd ########
+
+Invalid future syntax right here!
+
+
+######## pkg/m2/__init__.py ########
+
+######## pkg/m2/b.pyx ########
+
+from pkg.m1.a cimport A
+
+cdef class B(A):
+ pass
+
+######## runner.py ########
+
+from pkg.m1.a import A
+from pkg.m2.b import B
+
+a = A()
+b = B()
+
+assert a.x == 5
+assert isinstance(a.x, float), type(a.x)