diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6dca8cb9..cf83f3fe 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -298,7 +298,7 @@ jobs: CIBW_MUSLLINUX_AARCH64_IMAGE: ${{ matrix.musllinux_img || 'musllinux_1_1' }} CIBW_PRERELEASE_PYTHONS: 'True' CIBW_FREE_THREADED_SUPPORT: 'True' - CIBW_TEST_REQUIRES: pytest setuptools # 3.12+ no longer includes distutils, just always ensure setuptools is present + CIBW_TEST_REQUIRES: pytest setuptools pip>=25.1 # 3.12+ no longer includes distutils, just always ensure setuptools is present CIBW_TEST_COMMAND: PYTHONUNBUFFERED=1 python -m pytest ${{ matrix.test_args || '{project}' }} # default to test all run: | set -eux diff --git a/testing/cffi0/test_zintegration.py b/testing/cffi0/test_zintegration.py index 7612ba00..c9395725 100644 --- a/testing/cffi0/test_zintegration.py +++ b/testing/cffi0/test_zintegration.py @@ -17,14 +17,14 @@ def create_venv(name): try: # FUTURE: we should probably update this to use venv for at least more modern Pythons, and # install setuptools/pip/etc explicitly for the tests that require them (as venv has stopped including - # setuptools and wheel by default for newer versions). + # setuptools by default for newer versions). subprocess.check_call(['virtualenv', #'--never-download', <= could be added, but causes failures # in random cases on random machines '-p', os.path.abspath(sys.executable), str(tmpdir)]) - # Python 3.12 venv/virtualenv no longer include setuptools and wheel by default, which + # Python 3.12 venv/virtualenv no longer include setuptools by default, which # breaks a number of these tests; ensure it's always present for 3.12+ if sys.version_info >= (3, 12): subprocess.check_call([ @@ -32,8 +32,8 @@ def create_venv(name): '-m', 'pip', 'install', + 'pip', 'setuptools', - 'wheel', '--upgrade' ]) @@ -99,7 +99,7 @@ def remove(dir): # there's a setuptools/easy_install bug that causes this to fail when the build/install occur together and # we're in the same directory with the build (it tries to look up dependencies for itself on PyPI); # subsequent runs will succeed because this test doesn't properly clean up the build- use pip for now. - subprocess.check_call((vp, '-m', 'pip', 'install', '.'), env=env) + subprocess.check_call((vp, '-m', 'pip', 'install', '.', '--no-build-isolation'), env=env) subprocess.check_call((vp, str(python_f)), env=env) finally: os.chdir(olddir)