2021-01-31 17:14:15 -05:00
|
|
|
from packaging.specifiers import SpecifierSet
|
|
|
|
|
|
2018-09-16 22:49:38 +02:00
|
|
|
from cibuildwheel.util import BuildSelector
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build():
|
|
|
|
|
build_selector = BuildSelector(build_config="cp3?-* *-manylinux1*", skip_config="")
|
|
|
|
|
|
|
|
|
|
assert build_selector('cp27-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp36-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp37-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp27-manylinux1_i686')
|
|
|
|
|
assert build_selector('cp36-manylinux1_i686')
|
|
|
|
|
assert build_selector('cp37-manylinux1_i686')
|
|
|
|
|
assert not build_selector('cp27-macosx_10_6_intel')
|
|
|
|
|
assert build_selector('cp36-macosx_10_6_intel')
|
|
|
|
|
assert build_selector('cp37-macosx_10_6_intel')
|
|
|
|
|
assert not build_selector('cp27-win32')
|
|
|
|
|
assert build_selector('cp36-win32')
|
|
|
|
|
assert build_selector('cp37-win32')
|
|
|
|
|
assert not build_selector('cp27-win_amd64')
|
|
|
|
|
assert build_selector('cp36-win_amd64')
|
|
|
|
|
assert build_selector('cp37-win_amd64')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_skip():
|
2021-04-30 17:56:34 -04:00
|
|
|
build_selector = BuildSelector(
|
|
|
|
|
build_config="*", skip_config="cp27-* cp3?-manylinux1_i686 cp36-win* *-win32"
|
|
|
|
|
)
|
2018-09-16 22:49:38 +02:00
|
|
|
|
|
|
|
|
assert not build_selector('cp27-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp36-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp37-manylinux1_x86_64')
|
|
|
|
|
assert not build_selector('cp27-manylinux1_i686')
|
|
|
|
|
assert not build_selector('cp36-manylinux1_i686')
|
|
|
|
|
assert not build_selector('cp37-manylinux1_i686')
|
|
|
|
|
assert not build_selector('cp27-macosx_10_6_intel')
|
|
|
|
|
assert build_selector('cp36-macosx_10_6_intel')
|
|
|
|
|
assert build_selector('cp37-macosx_10_6_intel')
|
|
|
|
|
assert not build_selector('cp27-win32')
|
|
|
|
|
assert not build_selector('cp36-win32')
|
|
|
|
|
assert not build_selector('cp37-win32')
|
|
|
|
|
assert not build_selector('cp27-win_amd64')
|
|
|
|
|
assert not build_selector('cp36-win_amd64')
|
|
|
|
|
assert build_selector('cp37-win_amd64')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build_and_skip():
|
2021-04-30 17:56:34 -04:00
|
|
|
build_selector = BuildSelector(
|
|
|
|
|
build_config="cp36-* cp37-macosx* *-manylinux1*", skip_config="cp27-* cp37-manylinux1_i686"
|
|
|
|
|
)
|
2018-09-16 22:49:38 +02:00
|
|
|
|
|
|
|
|
assert not build_selector('cp27-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp36-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp37-manylinux1_x86_64')
|
|
|
|
|
assert not build_selector('cp27-manylinux1_i686')
|
|
|
|
|
assert build_selector('cp36-manylinux1_i686')
|
|
|
|
|
assert not build_selector('cp37-manylinux1_i686')
|
|
|
|
|
assert not build_selector('cp27-macosx_10_6_intel')
|
|
|
|
|
assert build_selector('cp36-macosx_10_6_intel')
|
|
|
|
|
assert build_selector('cp37-macosx_10_6_intel')
|
|
|
|
|
assert not build_selector('cp27-win32')
|
|
|
|
|
assert build_selector('cp36-win32')
|
|
|
|
|
assert not build_selector('cp37-win32')
|
|
|
|
|
assert not build_selector('cp27-win_amd64')
|
|
|
|
|
assert build_selector('cp36-win_amd64')
|
|
|
|
|
assert not build_selector('cp37-win_amd64')
|
2021-01-15 15:25:22 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build_braces():
|
|
|
|
|
build_selector = BuildSelector(build_config="cp{36,37}*", skip_config="")
|
|
|
|
|
|
|
|
|
|
assert not build_selector('cp27-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp36-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp37-manylinux1_x86_64')
|
|
|
|
|
assert not build_selector('cp38-manylinux1_x86_64')
|
|
|
|
|
assert not build_selector('cp39-manylinux1_x86_64')
|
2021-01-31 17:14:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build_limited_python():
|
2021-04-30 17:56:34 -04:00
|
|
|
build_selector = BuildSelector(
|
|
|
|
|
build_config="*", skip_config="", requires_python=SpecifierSet(">=3.6")
|
|
|
|
|
)
|
2021-01-31 17:14:15 -05:00
|
|
|
|
|
|
|
|
assert not build_selector('cp27-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp36-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp37-manylinux1_x86_64')
|
|
|
|
|
assert not build_selector('cp27-manylinux1_i686')
|
|
|
|
|
assert build_selector('cp36-manylinux1_i686')
|
|
|
|
|
assert build_selector('cp37-manylinux1_i686')
|
|
|
|
|
assert not build_selector('cp27-win32')
|
|
|
|
|
assert build_selector('cp36-win32')
|
|
|
|
|
assert build_selector('cp37-win32')
|
|
|
|
|
assert not build_selector('pp27-win32')
|
|
|
|
|
assert build_selector('pp36-win32')
|
|
|
|
|
assert build_selector('pp37-win32')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build_limited_python_partial():
|
2021-04-30 17:56:34 -04:00
|
|
|
build_selector = BuildSelector(
|
|
|
|
|
build_config="*",
|
|
|
|
|
skip_config="",
|
|
|
|
|
requires_python=SpecifierSet(">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"),
|
|
|
|
|
)
|
2021-01-31 17:14:15 -05:00
|
|
|
|
|
|
|
|
assert build_selector('cp27-manylinux1_x86_64')
|
|
|
|
|
assert not build_selector('cp35-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp36-manylinux1_x86_64')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build_limited_python_patch():
|
2021-04-30 17:56:34 -04:00
|
|
|
build_selector = BuildSelector(
|
|
|
|
|
build_config="*", skip_config="", requires_python=SpecifierSet(">=2.7.9")
|
|
|
|
|
)
|
2021-01-31 17:14:15 -05:00
|
|
|
|
|
|
|
|
assert build_selector('cp27-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp36-manylinux1_x86_64')
|
|
|
|
|
assert build_selector('cp37-manylinux1_x86_64')
|