* Add CPython 3.10 support * Fix logger displaying CPython 3.1 instead of 3.10 * Fix tests failing with CPython 3.10 * Use pytest instead of nose * feat: --pre flag Apply suggestions from code review Co-authored-by: Matthieu Darbois <mayeut@users.noreply.github.com> * fix: update Python update script to process beta versions * refactor: prerelease-pythons * Use `strtobool` to parse `CIBW_PRERELEASE_PYTHONS` env var * Update python version filtering for universal2 & arm64 * Filter out CPython 3.10 and above for `test_manylinuxXXXX_only[manylinux1]` test * Use CIBW_BUILD filtering rather than CIBW_SKIP for test_docker_images * Use skip_patterns to filter out pre-releases * Use `prerelease_pythons` instead of `pre` * Reword `CIBW_PRERELEASE_PYTHONS` doc per review. * Use `CIBW_PRERELEASE_PYTHONS: True` for usage example. * Update `cibuildwheel --help` doc * docs: add note on spec.filter * Clean up the BuildSelector __repr__ by refactoring * fix: remove platform variants for CIBW_PRERELEASE_PYTHONS * docs: mention the flag Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com> Co-authored-by: Joe Rickerby <joerick@mac.com>
134 lines
4.9 KiB
Python
134 lines
4.9 KiB
Python
from packaging.specifiers import SpecifierSet
|
|
|
|
from cibuildwheel.util import BuildSelector
|
|
|
|
|
|
def test_build():
|
|
build_selector = BuildSelector(build_config="cp3*-* *-manylinux*", skip_config="")
|
|
|
|
assert build_selector("cp36-manylinux_x86_64")
|
|
assert build_selector("cp37-manylinux_x86_64")
|
|
assert not build_selector("cp310-manylinux_x86_64")
|
|
assert build_selector("pp36-manylinux_x86_64")
|
|
assert build_selector("pp37-manylinux_x86_64")
|
|
assert build_selector("cp36-manylinux_i686")
|
|
assert build_selector("cp37-manylinux_i686")
|
|
assert build_selector("cp36-macosx_intel")
|
|
assert build_selector("cp37-macosx_intel")
|
|
assert build_selector("cp39-macosx_intel")
|
|
assert build_selector("cp39-macosx_universal2")
|
|
assert build_selector("cp39-macosx_arm64")
|
|
assert not build_selector("pp36-macosx_intel")
|
|
assert not build_selector("pp37-macosx_intel")
|
|
assert build_selector("cp36-win32")
|
|
assert build_selector("cp37-win32")
|
|
assert not build_selector("pp36-win32")
|
|
assert not build_selector("pp37-win32")
|
|
assert build_selector("cp36-win_amd64")
|
|
assert build_selector("cp37-win_amd64")
|
|
assert not build_selector("cp310-win_amd64")
|
|
assert not build_selector("pp36-win_amd64")
|
|
assert not build_selector("pp37-win_amd64")
|
|
|
|
|
|
def test_build_filter_pre():
|
|
build_selector = BuildSelector(
|
|
build_config="cp3*-* *-manylinux*",
|
|
skip_config="",
|
|
prerelease_pythons=True,
|
|
)
|
|
|
|
assert build_selector("cp37-manylinux_x86_64")
|
|
assert build_selector("cp310-manylinux_x86_64")
|
|
assert build_selector("cp37-win_amd64")
|
|
assert build_selector("cp310-win_amd64")
|
|
|
|
|
|
def test_skip():
|
|
build_selector = BuildSelector(
|
|
build_config="*", skip_config="pp36-* cp3?-manylinux_i686 cp36-win* *-win32"
|
|
)
|
|
|
|
assert not build_selector("pp36-manylinux_x86_64")
|
|
assert build_selector("pp37-manylinux_x86_64")
|
|
assert build_selector("cp36-manylinux_x86_64")
|
|
assert build_selector("cp37-manylinux_x86_64")
|
|
assert not build_selector("cp36-manylinux_i686")
|
|
assert not build_selector("cp37-manylinux_i686")
|
|
assert not build_selector("pp36-macosx_10_6_intel")
|
|
assert build_selector("pp37-macosx_10_6_intel")
|
|
assert build_selector("cp36-macosx_10_6_intel")
|
|
assert build_selector("cp37-macosx_10_6_intel")
|
|
assert not build_selector("cp36-win32")
|
|
assert not build_selector("cp37-win32")
|
|
assert not build_selector("cp36-win_amd64")
|
|
assert build_selector("cp37-win_amd64")
|
|
|
|
|
|
def test_build_and_skip():
|
|
build_selector = BuildSelector(
|
|
build_config="cp36-* cp37-macosx* *-manylinux*", skip_config="pp37-* cp37-manylinux_i686"
|
|
)
|
|
|
|
assert not build_selector("pp37-manylinux_x86_64")
|
|
assert build_selector("cp36-manylinux_x86_64")
|
|
assert build_selector("cp37-manylinux_x86_64")
|
|
assert not build_selector("pp37-manylinux_i686")
|
|
assert build_selector("cp36-manylinux_i686")
|
|
assert not build_selector("cp37-manylinux_i686")
|
|
assert not build_selector("pp37-macosx_10_6_intel")
|
|
assert build_selector("cp36-macosx_10_6_intel")
|
|
assert build_selector("cp37-macosx_10_6_intel")
|
|
assert not build_selector("pp37-win32")
|
|
assert build_selector("cp36-win32")
|
|
assert not build_selector("cp37-win32")
|
|
assert not build_selector("pp37-win_amd64")
|
|
assert build_selector("cp36-win_amd64")
|
|
assert not build_selector("cp37-win_amd64")
|
|
|
|
|
|
def test_build_braces():
|
|
build_selector = BuildSelector(build_config="cp{36,37}*", skip_config="")
|
|
|
|
assert build_selector("cp36-manylinux_x86_64")
|
|
assert build_selector("cp37-manylinux_x86_64")
|
|
assert not build_selector("cp38-manylinux_x86_64")
|
|
assert not build_selector("cp39-manylinux_x86_64")
|
|
|
|
|
|
def test_build_limited_python():
|
|
build_selector = BuildSelector(
|
|
build_config="*", skip_config="", requires_python=SpecifierSet(">=3.7")
|
|
)
|
|
|
|
assert not build_selector("cp36-manylinux_x86_64")
|
|
assert build_selector("cp37-manylinux_x86_64")
|
|
assert build_selector("cp38-manylinux_x86_64")
|
|
assert not build_selector("cp36-manylinux_i686")
|
|
assert build_selector("cp37-manylinux_i686")
|
|
assert build_selector("cp38-manylinux_i686")
|
|
assert not build_selector("cp36-win32")
|
|
assert build_selector("cp37-win32")
|
|
assert build_selector("cp38-win32")
|
|
assert build_selector("pp37-win_amd64")
|
|
|
|
|
|
def test_build_limited_python_partial():
|
|
build_selector = BuildSelector(
|
|
build_config="*", skip_config="", requires_python=SpecifierSet(">=3.6, !=3.7.*")
|
|
)
|
|
|
|
assert build_selector("cp36-manylinux_x86_64")
|
|
assert not build_selector("cp37-manylinux_x86_64")
|
|
assert build_selector("cp38-manylinux_x86_64")
|
|
assert build_selector("cp39-manylinux_x86_64")
|
|
|
|
|
|
def test_build_limited_python_patch():
|
|
build_selector = BuildSelector(
|
|
build_config="*", skip_config="", requires_python=SpecifierSet(">=3.6.8")
|
|
)
|
|
|
|
assert build_selector("cp36-manylinux_x86_64")
|
|
assert build_selector("cp37-manylinux_x86_64")
|