mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
dev-python/scikit-build: Fix tests
Thanks to arkamar for digging the patch up. Closes: https://bugs.gentoo.org/933655 Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
parent
bc27b81b74
commit
26f39f2f83
@ -0,0 +1,164 @@
|
||||
From acee12430753e8350435d4304196e8eaa654ccd6 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Kowalik <steven@wedontsleep.org>
|
||||
Date: Mon, 3 Jun 2024 20:47:20 +1000
|
||||
Subject: [PATCH] Support setuptools 69.3.0 changes in four tests
|
||||
|
||||
setuptools 69.3.0 now canonicalizes package names in filenames, which
|
||||
means all dashes are now converted to underscores, leading to test
|
||||
failures due to FileNotFoundErrors. Handle both cases to support older
|
||||
and newer setuptools.
|
||||
---
|
||||
tests/test_hello_cython.py | 23 ++++++++++++++---------
|
||||
tests/test_hello_fortran.py | 29 +++++++++++++++++------------
|
||||
tests/test_hello_pure.py | 15 ++++++++++-----
|
||||
tests/test_manifest_in.py | 17 +++++++++++------
|
||||
4 files changed, 52 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/tests/test_hello_cython.py b/tests/test_hello_cython.py
|
||||
index dc95f697..1d9e944d 100644
|
||||
--- a/tests/test_hello_cython.py
|
||||
+++ b/tests/test_hello_cython.py
|
||||
@@ -29,20 +29,25 @@ def test_hello_cython_sdist():
|
||||
sdists_zip = glob.glob("dist/*.zip")
|
||||
assert sdists_tar or sdists_zip
|
||||
|
||||
+ dirname = "hello-cython-1.2.3"
|
||||
+ # setuptools 69.3.0 and above now canonicalize the filename as well.
|
||||
+ if any("hello_cython" in x for x in sdists_zip + sdists_tar):
|
||||
+ dirname = "hello_cython-1.2.3"
|
||||
+
|
||||
expected_content = [
|
||||
- "hello-cython-1.2.3/CMakeLists.txt",
|
||||
- "hello-cython-1.2.3/hello/_hello.pyx",
|
||||
- "hello-cython-1.2.3/hello/CMakeLists.txt",
|
||||
- "hello-cython-1.2.3/hello/__init__.py",
|
||||
- "hello-cython-1.2.3/hello/__main__.py",
|
||||
- "hello-cython-1.2.3/setup.py",
|
||||
+ f"{dirname}/CMakeLists.txt",
|
||||
+ f"{dirname}/hello/_hello.pyx",
|
||||
+ f"{dirname}/hello/CMakeLists.txt",
|
||||
+ f"{dirname}/hello/__init__.py",
|
||||
+ f"{dirname}/hello/__main__.py",
|
||||
+ f"{dirname}/setup.py",
|
||||
]
|
||||
|
||||
- sdist_archive = "dist/hello-cython-1.2.3.zip"
|
||||
+ sdist_archive = f"dist/{dirname}.zip"
|
||||
if sdists_tar:
|
||||
- sdist_archive = "dist/hello-cython-1.2.3.tar.gz"
|
||||
+ sdist_archive = f"dist/{dirname}.tar.gz"
|
||||
|
||||
- check_sdist_content(sdist_archive, "hello-cython-1.2.3", expected_content, package_dir="hello")
|
||||
+ check_sdist_content(sdist_archive, dirname, expected_content, package_dir="hello")
|
||||
|
||||
|
||||
@project_setup_py_test("hello-cython", ["bdist_wheel"])
|
||||
diff --git a/tests/test_hello_fortran.py b/tests/test_hello_fortran.py
|
||||
index 41f5f444..be9cede9 100644
|
||||
--- a/tests/test_hello_fortran.py
|
||||
+++ b/tests/test_hello_fortran.py
|
||||
@@ -33,23 +33,28 @@ def test_hello_fortran_sdist():
|
||||
sdists_zip = glob.glob("dist/*.zip")
|
||||
assert sdists_tar or sdists_zip
|
||||
|
||||
+ dirname = "hello-fortran-1.2.3"
|
||||
+ # setuptools 69.3.0 and above now canonicalize the filename as well.
|
||||
+ if any("hello_fortran" in x for x in sdists_zip + sdists_tar):
|
||||
+ dirname = "hello_fortran-1.2.3"
|
||||
+
|
||||
expected_content = [
|
||||
- "hello-fortran-1.2.3/bonjour/_bonjour.f90",
|
||||
- "hello-fortran-1.2.3/bonjour/_bonjour.pyf",
|
||||
- "hello-fortran-1.2.3/bonjour/CMakeLists.txt",
|
||||
- "hello-fortran-1.2.3/CMakeLists.txt",
|
||||
- "hello-fortran-1.2.3/hello/_hello.f90",
|
||||
- "hello-fortran-1.2.3/hello/CMakeLists.txt",
|
||||
- "hello-fortran-1.2.3/hello/__init__.py",
|
||||
- "hello-fortran-1.2.3/hello/__main__.py",
|
||||
- "hello-fortran-1.2.3/setup.py",
|
||||
+ f"{dirname}/bonjour/_bonjour.f90",
|
||||
+ f"{dirname}/bonjour/_bonjour.pyf",
|
||||
+ f"{dirname}/bonjour/CMakeLists.txt",
|
||||
+ f"{dirname}/CMakeLists.txt",
|
||||
+ f"{dirname}/hello/_hello.f90",
|
||||
+ f"{dirname}/hello/CMakeLists.txt",
|
||||
+ f"{dirname}/hello/__init__.py",
|
||||
+ f"{dirname}/hello/__main__.py",
|
||||
+ f"{dirname}/setup.py",
|
||||
]
|
||||
|
||||
- sdist_archive = "dist/hello-fortran-1.2.3.zip"
|
||||
+ sdist_archive = f"dist/{dirname}.zip"
|
||||
if sdists_tar:
|
||||
- sdist_archive = "dist/hello-fortran-1.2.3.tar.gz"
|
||||
+ sdist_archive = f"dist/{dirname}.tar.gz"
|
||||
|
||||
- check_sdist_content(sdist_archive, "hello-fortran-1.2.3", expected_content)
|
||||
+ check_sdist_content(sdist_archive, dirname, expected_content)
|
||||
|
||||
|
||||
@pytest.mark.fortran()
|
||||
diff --git a/tests/test_hello_pure.py b/tests/test_hello_pure.py
|
||||
index 21b0840b..cc176854 100644
|
||||
--- a/tests/test_hello_pure.py
|
||||
+++ b/tests/test_hello_pure.py
|
||||
@@ -27,16 +27,21 @@ def test_hello_pure_sdist():
|
||||
sdists_zip = glob.glob("dist/*.zip")
|
||||
assert sdists_tar or sdists_zip
|
||||
|
||||
+ dirname = "hello-pure-1.2.3"
|
||||
+ # setuptools 69.3.0 and above now canonicalize the filename as well.
|
||||
+ if any("hello_pure" in x for x in sdists_zip + sdists_tar):
|
||||
+ dirname = "hello_pure-1.2.3"
|
||||
+
|
||||
expected_content = [
|
||||
- "hello-pure-1.2.3/hello/__init__.py",
|
||||
- "hello-pure-1.2.3/setup.py",
|
||||
+ f"{dirname}/hello/__init__.py",
|
||||
+ f"{dirname}/setup.py",
|
||||
]
|
||||
|
||||
- sdist_archive = "dist/hello-pure-1.2.3.zip"
|
||||
+ sdist_archive = f"dist/{dirname}.zip"
|
||||
if sdists_tar:
|
||||
- sdist_archive = "dist/hello-pure-1.2.3.tar.gz"
|
||||
+ sdist_archive = f"dist/{dirname}.tar.gz"
|
||||
|
||||
- check_sdist_content(sdist_archive, "hello-pure-1.2.3", expected_content)
|
||||
+ check_sdist_content(sdist_archive, dirname, expected_content)
|
||||
|
||||
|
||||
@project_setup_py_test("hello-pure", ["bdist_wheel"], disable_languages_test=True)
|
||||
diff --git a/tests/test_manifest_in.py b/tests/test_manifest_in.py
|
||||
index 86652308..65c23d1a 100644
|
||||
--- a/tests/test_manifest_in.py
|
||||
+++ b/tests/test_manifest_in.py
|
||||
@@ -21,17 +21,22 @@ def test_manifest_in_sdist():
|
||||
sdists_zip = glob.glob("dist/*.zip")
|
||||
assert sdists_tar or sdists_zip
|
||||
|
||||
+ dirname = "manifest-in-1.2.3"
|
||||
+ # setuptools 69.3.0 and above now canonicalize the filename as well.
|
||||
+ if any("manifest_in" in x for x in sdists_zip + sdists_tar):
|
||||
+ dirname = "manifest_in-1.2.3"
|
||||
+
|
||||
expected_content = [
|
||||
- "manifest-in-1.2.3/hello/__init__.py",
|
||||
- "manifest-in-1.2.3/setup.py",
|
||||
- "manifest-in-1.2.3/MANIFEST.in",
|
||||
+ f"{dirname}/hello/__init__.py",
|
||||
+ f"{dirname}/setup.py",
|
||||
+ f"{dirname}/MANIFEST.in",
|
||||
]
|
||||
|
||||
- sdist_archive = "dist/manifest-in-1.2.3.zip"
|
||||
+ sdist_archive = f"dist/{dirname}.zip"
|
||||
if sdists_tar:
|
||||
- sdist_archive = "dist/manifest-in-1.2.3.tar.gz"
|
||||
+ sdist_archive = f"dist/{dirname}.tar.gz"
|
||||
|
||||
- check_sdist_content(sdist_archive, "manifest-in-1.2.3", expected_content)
|
||||
+ check_sdist_content(sdist_archive, dirname, expected_content)
|
||||
|
||||
|
||||
@project_setup_py_test("manifest-in", ["bdist_wheel"], disable_languages_test=True)
|
||||
@ -24,7 +24,7 @@ RDEPEND="
|
||||
>=dev-python/setuptools-42.0.0[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/tomli[${PYTHON_USEDEP}]
|
||||
' 3.{9..10})
|
||||
' 3.10)
|
||||
>=dev-python/wheel-0.32.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
@ -43,9 +43,15 @@ BDEPEND="
|
||||
distutils_enable_sphinx docs \
|
||||
dev-python/sphinx-rtd-theme \
|
||||
dev-python/sphinx-issues
|
||||
# note: tests are unstable with xdist
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
local PATCHES=(
|
||||
# https://github.com/scikit-build/scikit-build/pull/1087
|
||||
"${FILESDIR}/${P}-setuptools-69.3.patch"
|
||||
)
|
||||
|
||||
# not packaged
|
||||
sed -i -e '/cmakedomain/d' docs/conf.py || die
|
||||
distutils-r1_src_prepare
|
||||
@ -63,6 +69,9 @@ python_test() {
|
||||
;;
|
||||
esac
|
||||
|
||||
epytest -m "not isolated and not nosetuptoolsscm"
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
epytest -p pytest_mock \
|
||||
-m "not isolated and not nosetuptoolsscm" \
|
||||
-o tmp_path_retention_count=1
|
||||
rm -r "${BUILD_DIR}/install$(python_get_sitedir)"/{easy-install.pth,*.egg,*.egg-link} || die
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user