Skip to content

Commit

Permalink
Add a test to check that the warning is detected when produced
Browse files Browse the repository at this point in the history
  • Loading branch information
joerick committed Oct 16, 2022
1 parent fed1314 commit c083b12
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions test/test_macos_archs.py
Expand Up @@ -14,6 +14,8 @@
*utils.expected_wheels("spam", "0.1.0", machine_arch="arm64", include_universal2=True),
}

DEPLOYMENT_TARGET_TOO_LOW_WARNING = "[WARNING] MACOSX_DEPLOYMENT_TARGET is set to a lower value"


def get_xcode_version() -> tuple[int, int]:
output = subprocess.run(
Expand Down Expand Up @@ -72,8 +74,7 @@ def test_cross_compiled_test(tmp_path, capfd, build_universal2):

captured = capfd.readouterr()

assert "[WARNING] MACOSX_DEPLOYMENT_TARGET is set to a lower value" not in captured.out
assert "[WARNING] MACOSX_DEPLOYMENT_TARGET is set to a lower value" not in captured.err
assert DEPLOYMENT_TARGET_TOO_LOW_WARNING not in captured.err

if platform.machine() == "x86_64":
# ensure that tests were run on only x86_64
Expand Down Expand Up @@ -101,6 +102,28 @@ def test_cross_compiled_test(tmp_path, capfd, build_universal2):
assert set(actual_wheels) == set(expected_wheels)


def test_deployment_target_warning_is_firing(tmp_path, capfd):
# force the warning to check that we can detect it if it happens
if utils.platform != "macos":
pytest.skip("this test is only relevant to macos")

project_dir = tmp_path / "project"
basic_project.generate(project_dir)

utils.cibuildwheel_run(
project_dir,
add_env={
"CIBW_BUILD": "cp39-*",
"CIBW_ARCHS": "x86_64",
"MACOSX_DEPLOYMENT_TARGET": "10.8",
"CIBW_BUILD_VERBOSITY": "3",
},
)

captured = capfd.readouterr()
assert DEPLOYMENT_TARGET_TOO_LOW_WARNING in captured.err


@pytest.mark.parametrize("skip_arm64_test", [False, True])
def test_universal2_testing(tmp_path, capfd, skip_arm64_test):
if utils.platform != "macos":
Expand Down

0 comments on commit c083b12

Please sign in to comment.