diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index 538d56f1..010d9eea 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -20,6 +20,7 @@ from cibuildwheel.util import ( DependencyConstraints, TestSelector, Unbuffered, + allowed_architectures_check, detect_ci_provider, resources_dir, ) @@ -257,6 +258,12 @@ def main() -> None: print_preamble(platform, build_options) + try: + allowed_architectures_check(platform, build_options) + except ValueError as err: + print("cibuildwheel:", *err.args, file=sys.stderr) + sys.exit(4) + if not identifiers: print(f'cibuildwheel: No build identifiers selected: {build_selector}', file=sys.stderr) if not args.allow_empty: diff --git a/cibuildwheel/linux.py b/cibuildwheel/linux.py index 1a104d7c..ce725b55 100644 --- a/cibuildwheel/linux.py +++ b/cibuildwheel/linux.py @@ -12,7 +12,6 @@ from .util import ( BuildOptions, BuildSelector, NonPlatformWheelError, - allowed_architectures_check, get_build_verbosity_extra_flags, prepare_command, read_python_configs, @@ -49,8 +48,6 @@ def get_python_configurations( def build(options: BuildOptions) -> None: - allowed_architectures_check('linux', options) - try: subprocess.check_output(['docker', '--version']) except Exception: diff --git a/cibuildwheel/macos.py b/cibuildwheel/macos.py index 66b41b3f..cf691995 100644 --- a/cibuildwheel/macos.py +++ b/cibuildwheel/macos.py @@ -14,7 +14,6 @@ from .util import ( BuildOptions, BuildSelector, NonPlatformWheelError, - allowed_architectures_check, download, get_build_verbosity_extra_flags, get_pip_script, @@ -188,8 +187,6 @@ def setup_python(python_configuration: PythonConfiguration, def build(options: BuildOptions) -> None: - allowed_architectures_check("macos", options) - temp_dir = Path(tempfile.mkdtemp(prefix='cibuildwheel')) built_wheel_dir = temp_dir / 'built_wheel' repaired_wheel_dir = temp_dir / 'repaired_wheel' diff --git a/cibuildwheel/windows.py b/cibuildwheel/windows.py index 5e8c1683..e2a6d254 100644 --- a/cibuildwheel/windows.py +++ b/cibuildwheel/windows.py @@ -17,7 +17,6 @@ from .util import ( BuildOptions, BuildSelector, NonPlatformWheelError, - allowed_architectures_check, download, get_build_verbosity_extra_flags, get_pip_script, @@ -207,8 +206,6 @@ def pep_518_cp35_workaround(package_dir: Path, env: Dict[str, str]) -> None: def build(options: BuildOptions) -> None: - allowed_architectures_check('windows', options) - temp_dir = Path(tempfile.mkdtemp(prefix='cibuildwheel')) built_wheel_dir = temp_dir / 'built_wheel' repaired_wheel_dir = temp_dir / 'repaired_wheel' diff --git a/unit_test/main_tests/main_platform_test.py b/unit_test/main_tests/main_platform_test.py index aa004c5c..e0897dc8 100644 --- a/unit_test/main_tests/main_platform_test.py +++ b/unit_test/main_tests/main_platform_test.py @@ -81,8 +81,6 @@ def test_archs_default(platform, intercepted_build_args, monkeypatch): @pytest.mark.parametrize('use_env_var', [False, True]) def test_archs_argument(platform, intercepted_build_args, monkeypatch, use_env_var): - if platform == 'windows': - pytest.skip('Will have empty build selectors on Windows') if use_env_var: monkeypatch.setenv('CIBW_ARCHS', 'ppc64le') @@ -90,10 +88,15 @@ def test_archs_argument(platform, intercepted_build_args, monkeypatch, use_env_v monkeypatch.setenv('CIBW_ARCHS', 'unused') monkeypatch.setattr(sys, 'argv', sys.argv + ['--archs', 'ppc64le']) - main() - build_options = intercepted_build_args.args[0] + if platform in {'macos', 'windows'}: + with pytest.raises(SystemExit) as err: + main() + assert err.value.args == (4,) - assert build_options.architectures == {Architecture.ppc64le} + else: + main() + build_options = intercepted_build_args.args[0] + assert build_options.architectures == {Architecture.ppc64le} def test_archs_platform_specific(platform, intercepted_build_args, monkeypatch):