public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/scikit-build/, dev-python/scikit-build/files/
Date: Fri, 14 Jun 2024 15:07:16 +0000 (UTC)	[thread overview]
Message-ID: <1718377632.26f39f2f8320556c2515ac88643e338757d9c9d3.mgorny@gentoo> (raw)

commit:     26f39f2f8320556c2515ac88643e338757d9c9d3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 14 14:43:57 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jun 14 15:07:12 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26f39f2f

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 <AT> gentoo.org>

 .../scikit-build-0.17.6-setuptools-69.3.patch      | 164 +++++++++++++++++++++
 dev-python/scikit-build/scikit-build-0.17.6.ebuild |  13 +-
 2 files changed, 175 insertions(+), 2 deletions(-)

diff --git a/dev-python/scikit-build/files/scikit-build-0.17.6-setuptools-69.3.patch b/dev-python/scikit-build/files/scikit-build-0.17.6-setuptools-69.3.patch
new file mode 100644
index 000000000000..ce5121bea72f
--- /dev/null
+++ b/dev-python/scikit-build/files/scikit-build-0.17.6-setuptools-69.3.patch
@@ -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)

diff --git a/dev-python/scikit-build/scikit-build-0.17.6.ebuild b/dev-python/scikit-build/scikit-build-0.17.6.ebuild
index 90df4c6ec5e5..13aa6fbe700a 100644
--- a/dev-python/scikit-build/scikit-build-0.17.6.ebuild
+++ b/dev-python/scikit-build/scikit-build-0.17.6.ebuild
@@ -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
 }


             reply	other threads:[~2024-06-14 15:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-14 15:07 Michał Górny [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-07-15  7:24 [gentoo-commits] repo/gentoo:master commit in: dev-python/scikit-build/, dev-python/scikit-build/files/ Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1718377632.26f39f2f8320556c2515ac88643e338757d9c9d3.mgorny@gentoo \
    --to=mgorny@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox