From 7c86223ff8254828f05305cf5ce8bad6df093252 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Mon, 21 Dec 2020 11:05:19 +0000 Subject: [PATCH] Add platform-specific arch option unit test --- cibuildwheel/util.py | 7 +++++-- unit_test/main_tests/main_platform_test.py | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/cibuildwheel/util.py b/cibuildwheel/util.py index a4711dd3..a2a52481 100644 --- a/cibuildwheel/util.py +++ b/cibuildwheel/util.py @@ -124,13 +124,16 @@ class DependencyConstraints: class Architecture(str, Enum): + # mac/linux archs x86_64 = 'x86_64' i686 = 'i686' aarch64 = 'aarch64' ppc64le = 'ppc64le' s390x = 's390x' - win32 = 'win32' - win_amd64 = 'win_amd64' + + # windows archs + x86 = 'x86' + amd64 = 'AMD64' @staticmethod def parse_config(config: str, platform: str) -> 'List[Architecture]': diff --git a/unit_test/main_tests/main_platform_test.py b/unit_test/main_tests/main_platform_test.py index 806b9065..9ac84ea8 100644 --- a/unit_test/main_tests/main_platform_test.py +++ b/unit_test/main_tests/main_platform_test.py @@ -93,3 +93,21 @@ def test_archs_argument(platform, intercepted_build_args, monkeypatch, use_env_v build_options = intercepted_build_args.args[0] assert build_options.architectures == [Architecture.ppc64le] + + +def test_archs_platform_specific(platform, intercepted_build_args, monkeypatch): + monkeypatch.setattr(platform_module, 'machine', lambda: 'x86_64') + monkeypatch.setenv('CIBW_ARCHS', 'unused') + monkeypatch.setenv('CIBW_ARCHS_LINUX', 'ppc64le') + monkeypatch.setenv('CIBW_ARCHS_WINDOWS', 'x86') + monkeypatch.setenv('CIBW_ARCHS_MACOS', 'x86_64') + + main() + build_options = intercepted_build_args.args[0] + + if platform == 'linux': + assert build_options.architectures == [Architecture.ppc64le] + elif platform == 'windows': + assert build_options.architectures == [Architecture.x86] + elif platform == 'macos': + assert build_options.architectures == [Architecture.x86_64]