Don't require --platform when running on a development machine

Historically, we required `--platform` when running cibuildwheel outside of CI, because cibuildwheel would attempt to globally install Python interpreters and some packages.

That was fixed in https://github.com/pypa/cibuildwheel/pull/974 a couple of years ago. As a result, there's no reason to require --platform these days, the `auto` behaviour is perfectly fine for dev machines.

It also makes running tests locally simpler, one can just do `pytest test/test_0_basic.py` (or `nox -s tests -- test/test_0_basic.py`) and not have to worry about setting CIBW_PLATFORM most of the time.
This commit is contained in:
Joe Rickerby
2024-01-21 18:24:43 +00:00
parent 23a6e88b0c
commit 4db49f5485
5 changed files with 38 additions and 84 deletions
+18 -17
View File
@@ -10,25 +10,26 @@ from cibuildwheel.architecture import Architecture
from ..conftest import MOCK_PACKAGE_DIR
def test_unknown_platform_non_ci(monkeypatch, capsys):
monkeypatch.delenv("CI", raising=False)
monkeypatch.delenv("BITRISE_BUILD_NUMBER", raising=False)
monkeypatch.delenv("AZURE_HTTP_USER_AGENT", raising=False)
monkeypatch.delenv("TRAVIS", raising=False)
monkeypatch.delenv("APPVEYOR", raising=False)
monkeypatch.delenv("GITHUB_ACTIONS", raising=False)
monkeypatch.delenv("GITLAB_CI", raising=False)
monkeypatch.delenv("CIRCLECI", raising=False)
monkeypatch.delenv("CIRRUS_CI", raising=False)
monkeypatch.delenv("CIBW_PLATFORM", raising=False)
@pytest.mark.parametrize("option_value", [None, "auto"])
def test_platform_unset_or_auto(monkeypatch, intercepted_build_args, option_value):
if option_value is None:
monkeypatch.delenv("CIBW_PLATFORM", raising=False)
else:
monkeypatch.setenv("CIBW_PLATFORM", option_value)
with pytest.raises(SystemExit) as exit:
main()
assert exit.value.code == 2
_, err = capsys.readouterr()
main()
assert "cibuildwheel: Unable to detect platform." in err
assert "cibuildwheel should run on your CI server" in err
options = intercepted_build_args.args[0]
# check that the platform was auto detected to build for the current system
if sys.platform.startswith("linux"):
assert options.platform == "linux"
elif sys.platform == "darwin":
assert options.platform == "macos"
elif sys.platform == "win32":
assert options.platform == "windows"
else:
pytest.fail(f"Unknown platform: {sys.platform}")
def test_unknown_platform_on_ci(monkeypatch, capsys):