From 42e0692eab5e5cbfa29cab013df5732bfa322285 Mon Sep 17 00:00:00 2001 From: Miro HronĨok Date: Jul 20 2018 08:52:31 +0000 Subject: WIP tests for venv --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fcb6314 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.pytest_cache/ +.tox/ +build/ +/module.* +/setup.py +/test_foo.py +/tox.ini +/venv/ diff --git a/tests-venv b/tests-venv new file mode 100755 index 0000000..bb36258 --- /dev/null +++ b/tests-venv @@ -0,0 +1,67 @@ +#!/bin/sh -eux + +# TODO set this from outside depending on the package +VERSION=3.7 +PYTHON=python$VERSION + +# clean from possible older runs +rm -rf venv .tox __pycache__ .pytest* test_*.py *.pyx *.c *.so || : + +# check the we can create the venv +$PYTHON -m venv venv + +# and activate it +source venv/bin/activate + +# run python in it +python -c 'import sys; print(sys.version)' | head -n1 | grep $VERSION + +# install packages with pip +python -m pip install pytest + +# run tests +cat > test_foo.py << EOF +def test_foo(): + assert True +EOF + +python -m pytest -v test_foo.py + +# check that we can do extension modules +cat > module.pyx << EOF +cdef int add(int a, int b): + return a + b + +def two(): + cdef int a = 1 + cdef int b = 1 + return add(a, b) +EOF + +cat > setup.py << EOF +from setuptools import setup +from Cython.Build import cythonize + +setup(ext_modules = cythonize('module.pyx')) +EOF + +python -m pip install Cython +python setup.py build_ext --inplace + +python -c 'import module; print(module.two())' | grep '^2$' + +# deactivate has unset variable, it's known +set +u +deactivate +set -u + +# use it with tox +cat > tox.ini << EOF +[tox] +skipsdist = True +[testenv] +deps = pytest +commands = python -m pytest -v test_foo.py +EOF + +tox -e py${VERSION/./}