From 24180c844f02d8a63f75f954eed4c9e89c5d3d17 Mon Sep 17 00:00:00 2001 From: Matti Picus Date: Fri, 29 Nov 2019 11:30:16 +0200 Subject: [PATCH] TEST: add cpp attribute example from docs, add CYTHON_PROJECT_DIR for tests (GH-2970) --- runtests.py | 4 ++++ tests/run/cpp_class_attrib.srctree | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/run/cpp_class_attrib.srctree diff --git a/runtests.py b/runtests.py index e4024b094..ff78cb80b 100755 --- a/runtests.py +++ b/runtests.py @@ -2012,6 +2012,10 @@ def flush_and_terminate(status): def main(): global DISTDIR, WITH_CYTHON + + # Set an environment variable to the top directory + os.environ['CYTHON_PROJECT_DIR'] = os.path.abspath(os.path.dirname(__file__)) + DISTDIR = os.path.join(os.getcwd(), os.path.dirname(sys.argv[0])) from Cython.Compiler import DebugFlags diff --git a/tests/run/cpp_class_attrib.srctree b/tests/run/cpp_class_attrib.srctree new file mode 100644 index 000000000..3ae850839 --- /dev/null +++ b/tests/run/cpp_class_attrib.srctree @@ -0,0 +1,26 @@ +# tag: cpp + +PYTHON setup.py build_ext --inplace +PYTHON -c "import runner" + +######## setup.py ######## + +from Cython.Build.Dependencies import cythonize +from distutils.core import setup +import os + +example_dir = os.path.abspath(os.path.join(os.environ['CYTHON_PROJECT_DIR'], + 'docs/examples/userguide/wrapping_CPlusPlus')) + +ext_modules= cythonize(os.path.join(example_dir, "rect_with_attributes.pyx"), + include_path=[example_dir]) +setup(ext_modules=ext_modules) + +######## runner.py ######## + +import rect_with_attributes + +x0, y0, x1, y1 = 1, 2, 3, 4 +rect_obj = rect_with_attributes.PyRectangle(x0, y0, x1, y1) + +assert rect_obj.x0 == x0 -- 2.25.1