Matej Cepl
7c69c9c95f
- Add pythran-pr1984-fixdistutils.patch * gh#serge-sans-paille/pythran#1984 * Fixes gh#serge-sans-paille/pythran#1984 with setuptools >= 60 OBS-URL: https://build.opensuse.org/request/show/989982 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-pythran?expand=0&rev=6
164 lines
8.7 KiB
Diff
164 lines
8.7 KiB
Diff
From 934e31d86a6721c378598d4000c3ee39c59a154f Mon Sep 17 00:00:00 2001
|
|
From: serge-sans-paille <serge.guelton@telecom-bretagne.eu>
|
|
Date: Sun, 3 Apr 2022 11:22:17 +0200
|
|
Subject: [PATCH] Harden distutils tests
|
|
|
|
Use correct executable when running import tests.
|
|
Use pip install instead of setup.py install to test install.
|
|
Should fix #1981
|
|
---
|
|
pythran/tests/test_distutils.py | 53 ++++++++++++++++++---------------
|
|
1 file changed, 29 insertions(+), 24 deletions(-)
|
|
|
|
Index: pythran-0.11.0/pythran/tests/test_distutils.py
|
|
===================================================================
|
|
--- pythran-0.11.0.orig/pythran/tests/test_distutils.py
|
|
+++ pythran-0.11.0/pythran/tests/test_distutils.py
|
|
@@ -10,6 +10,8 @@ cwd = os.path.dirname(__file__)
|
|
python_version = "python{}.{}".format(sys.version_info.major,
|
|
sys.version_info.minor)
|
|
|
|
+python = sys.executable
|
|
+
|
|
def find_so(name, path):
|
|
for root, dirs, files in os.walk(path):
|
|
for filename in files:
|
|
@@ -19,33 +21,35 @@ def find_so(name, path):
|
|
class TestDistutils(unittest.TestCase):
|
|
|
|
def test_setup_build(self):
|
|
- check_call(['python', 'setup.py', 'build'],
|
|
+ check_call([python, 'setup.py', 'build'],
|
|
cwd=os.path.join(cwd, 'test_distutils'))
|
|
- check_call(['python', 'setup.py', 'install', '--prefix=demo_install'],
|
|
+ check_call([python, '-m', 'pip', 'install', '.', '--prefix=demo_install'],
|
|
cwd=os.path.join(cwd, 'test_distutils'))
|
|
|
|
base = os.path.join(cwd, 'test_distutils', 'demo_install',)
|
|
libdir = os.path.join(base, 'lib')
|
|
if not os.path.isdir(libdir):
|
|
libdir = os.path.join(base, 'lib64')
|
|
- check_call(['python', '-c', 'import demo'],
|
|
- cwd=os.path.join(libdir, python_version, 'site-packages'))
|
|
- check_call(['python', 'setup.py', 'clean'],
|
|
+
|
|
+ local_env = os.environ.copy()
|
|
+ local_env['PYTHONPATH'] = os.path.join(libdir, python_version, 'site-packages')
|
|
+ check_call([python, '-c', 'import demo'], env=local_env)
|
|
+ check_call([python, 'setup.py', 'clean'],
|
|
cwd=os.path.join(cwd, 'test_distutils'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils', 'demo_install'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils', 'build'))
|
|
|
|
def test_setup_sdist_install(self):
|
|
- check_call(['python', 'setup.py', 'sdist', "--dist-dir=sdist"],
|
|
+ check_call([python, 'setup.py', 'sdist', "--dist-dir=sdist"],
|
|
cwd=os.path.join(cwd, 'test_distutils'))
|
|
check_call(['tar', 'xzf', 'demo-1.0.tar.gz'],
|
|
cwd=os.path.join(cwd, 'test_distutils', 'sdist'))
|
|
- check_call(['python', 'setup.py', 'install', '--prefix=demo_install'],
|
|
+ check_call([python, 'setup.py', 'install', '--prefix=demo_install'],
|
|
cwd=os.path.join(cwd, 'test_distutils', 'sdist', 'demo-1.0'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils', 'sdist'))
|
|
|
|
def test_setup_bdist_install(self):
|
|
- check_call(['python', 'setup.py', 'bdist', "--dist-dir=bdist"],
|
|
+ check_call([python, 'setup.py', 'bdist', "--dist-dir=bdist"],
|
|
cwd=os.path.join(cwd, 'test_distutils'))
|
|
dist_path = os.path.join(cwd, 'test_distutils', 'bdist')
|
|
tgz = [f for f in os.listdir(dist_path) if f.endswith(".tar.gz")][0]
|
|
@@ -56,7 +60,7 @@ class TestDistutils(unittest.TestCase):
|
|
shutil.rmtree(dist_path)
|
|
|
|
def test_setup_wheel_install(self):
|
|
- check_call(['python', 'setup.py', 'bdist_wheel', "--dist-dir=bdist_wheel"],
|
|
+ check_call([python, 'setup.py', 'bdist_wheel', "--dist-dir=bdist_wheel"],
|
|
cwd=os.path.join(cwd, 'test_distutils_setuptools'))
|
|
dist_path = os.path.join(cwd, 'test_distutils_setuptools', 'bdist_wheel')
|
|
wheel_dir = 'wheeeeeeel'
|
|
@@ -69,33 +73,34 @@ class TestDistutils(unittest.TestCase):
|
|
|
|
|
|
def test_setup_build2(self):
|
|
- check_call(['python', 'setup.py', 'build'],
|
|
+ check_call([python, 'setup.py', 'build'],
|
|
cwd=os.path.join(cwd, 'test_distutils_packaged'))
|
|
- check_call(['python', 'setup.py', 'install', '--prefix=demo_install2'],
|
|
+ check_call([python, '-m', 'pip', 'install', '.', '--prefix=demo_install2'],
|
|
cwd=os.path.join(cwd, 'test_distutils_packaged'))
|
|
|
|
base = os.path.join(cwd, 'test_distutils_packaged', 'demo_install2',)
|
|
libdir = os.path.join(base, 'lib')
|
|
if not os.path.isdir(libdir):
|
|
libdir = os.path.join(base, 'lib64')
|
|
- check_call(['python', '-c', 'import demo2.a'],
|
|
- cwd=os.path.join(libdir, python_version, 'site-packages'))
|
|
- check_call(['python', 'setup.py', 'clean'],
|
|
+ local_env = os.environ.copy()
|
|
+ local_env['PYTHONPATH'] = os.path.join(libdir, python_version, 'site-packages')
|
|
+ check_call([python, '-c', 'import demo2.a'], env=local_env)
|
|
+ check_call([python, 'setup.py', 'clean'],
|
|
cwd=os.path.join(cwd, 'test_distutils_packaged'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils_packaged', 'demo_install2'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils_packaged', 'build'))
|
|
|
|
def test_setup_sdist_install2(self):
|
|
- check_call(['python', 'setup.py', 'sdist', "--dist-dir=sdist2"],
|
|
+ check_call([python, 'setup.py', 'sdist', "--dist-dir=sdist2"],
|
|
cwd=os.path.join(cwd, 'test_distutils_packaged'))
|
|
check_call(['tar', 'xzf', 'demo2-1.0.tar.gz'],
|
|
cwd=os.path.join(cwd, 'test_distutils_packaged', 'sdist2'))
|
|
- check_call(['python', 'setup.py', 'install', '--prefix=demo_install2'],
|
|
+ check_call([python, 'setup.py', 'install', '--prefix=demo_install2'],
|
|
cwd=os.path.join(cwd, 'test_distutils_packaged', 'sdist2', 'demo2-1.0'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils_packaged', 'sdist2'))
|
|
|
|
def test_setup_bdist_install2(self):
|
|
- check_call(['python', 'setup.py', 'bdist', "--dist-dir=bdist"],
|
|
+ check_call([python, 'setup.py', 'bdist', "--dist-dir=bdist"],
|
|
cwd=os.path.join(cwd, 'test_distutils_packaged'))
|
|
dist_path = os.path.join(cwd, 'test_distutils_packaged', 'bdist')
|
|
tgz = [f for f in os.listdir(dist_path) if f.endswith(".tar.gz")][0]
|
|
@@ -106,34 +111,34 @@ class TestDistutils(unittest.TestCase):
|
|
shutil.rmtree(dist_path)
|
|
|
|
def test_setup_build3(self):
|
|
- check_call(['python', 'setup.py', 'build'],
|
|
+ check_call([python, 'setup.py', 'build'],
|
|
cwd=os.path.join(cwd, 'test_distutils_numpy'))
|
|
- check_call(['python', 'setup.py', 'install', '--prefix=demo_install3'],
|
|
+ check_call([python, 'setup.py', 'install', '--prefix=demo_install3'],
|
|
cwd=os.path.join(cwd, 'test_distutils_numpy'))
|
|
|
|
base = os.path.join(cwd, 'test_distutils_numpy', 'demo_install3',)
|
|
libdir = os.path.join(base, 'lib')
|
|
if not os.path.isdir(libdir):
|
|
libdir = os.path.join(base, 'lib64')
|
|
- check_call(['python', '-c', 'import a'],
|
|
+ check_call([python, '-c', 'import a'],
|
|
cwd=os.path.join(libdir, python_version, 'site-packages',
|
|
'demo3'))
|
|
- check_call(['python', 'setup.py', 'clean'],
|
|
+ check_call([python, 'setup.py', 'clean'],
|
|
cwd=os.path.join(cwd, 'test_distutils_numpy'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils_numpy', 'demo_install3'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils_numpy', 'build'))
|
|
|
|
def test_setup_sdist_install3(self):
|
|
- check_call(['python', 'setup.py', 'sdist', "--dist-dir=sdist3"],
|
|
+ check_call([python, 'setup.py', 'sdist', "--dist-dir=sdist3"],
|
|
cwd=os.path.join(cwd, 'test_distutils_numpy'))
|
|
check_call(['tar', 'xzf', 'demo3-1.0.tar.gz'],
|
|
cwd=os.path.join(cwd, 'test_distutils_numpy', 'sdist3'))
|
|
- check_call(['python', 'setup.py', 'install', '--prefix=demo_install3'],
|
|
+ check_call([python, 'setup.py', 'install', '--prefix=demo_install3'],
|
|
cwd=os.path.join(cwd, 'test_distutils_numpy', 'sdist3', 'demo3-1.0'))
|
|
shutil.rmtree(os.path.join(cwd, 'test_distutils_numpy', 'sdist3'))
|
|
|
|
def test_setup_bdist_install3(self):
|
|
- check_call(['python', 'setup.py', 'bdist', "--dist-dir=bdist"],
|
|
+ check_call([python, 'setup.py', 'bdist', "--dist-dir=bdist"],
|
|
cwd=os.path.join(cwd, 'test_distutils_numpy'))
|
|
dist_path = os.path.join(cwd, 'test_distutils_numpy', 'bdist')
|
|
tgz = [f for f in os.listdir(dist_path) if f.endswith(".tar.gz")][0]
|