Monkeypatch sys.argv instead of using an argument to main()

Just a style thing... didn't want to complicate the main func
for the sake of a couple tests
This commit is contained in:
Joe Rickerby
2021-10-17 21:24:03 +01:00
parent 08a694485d
commit 4f53583801
2 changed files with 12 additions and 6 deletions
+3 -3
View File
@@ -2,7 +2,7 @@ import argparse
import os import os
import sys import sys
import textwrap import textwrap
from typing import List, Optional, Set, Union from typing import List, Set, Union
import cibuildwheel import cibuildwheel
import cibuildwheel.linux import cibuildwheel.linux
@@ -15,7 +15,7 @@ from cibuildwheel.typing import PLATFORMS, PlatformName, assert_never
from cibuildwheel.util import BuildSelector, Unbuffered, detect_ci_provider from cibuildwheel.util import BuildSelector, Unbuffered, detect_ci_provider
def main(sys_args: Optional[List[str]] = None) -> None: def main() -> None:
platform: PlatformName platform: PlatformName
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
@@ -98,7 +98,7 @@ def main(sys_args: Optional[List[str]] = None) -> None:
help="Enable pre-release Python versions if available.", help="Enable pre-release Python versions if available.",
) )
args = parser.parse_args(args=sys_args, namespace=CommandLineArguments()) args = parser.parse_args(namespace=CommandLineArguments())
if args.platform != "auto": if args.platform != "auto":
platform = args.platform platform = args.platform
+9 -3
View File
@@ -1,5 +1,6 @@
import platform as platform_module import platform as platform_module
import subprocess import subprocess
import sys
from contextlib import contextmanager from contextlib import contextmanager
from pathlib import Path from pathlib import Path
from typing import cast from typing import cast
@@ -40,9 +41,11 @@ def mock_build_docker(monkeypatch):
monkeypatch.setattr("cibuildwheel.util.print_new_wheels", ignore_context_call) monkeypatch.setattr("cibuildwheel.util.print_new_wheels", ignore_context_call)
def test_build_default_launches(mock_build_docker, fake_package_dir): def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch):
monkeypatch.setattr(sys, "argv", ["cibuildwheel", "--platform=linux"])
main()
main(["--platform=linux"])
build_on_docker = cast(mock.Mock, linux.build_on_docker) build_on_docker = cast(mock.Mock, linux.build_on_docker)
assert build_on_docker.call_count == 4 assert build_on_docker.call_count == 4
@@ -106,7 +109,10 @@ before-all = "true"
) )
monkeypatch.chdir(pkg_dir) monkeypatch.chdir(pkg_dir)
main(["--platform=linux"]) monkeypatch.setattr(sys, "argv", ["cibuildwheel", "--platform=linux"])
main()
build_on_docker = cast(mock.Mock, linux.build_on_docker) build_on_docker = cast(mock.Mock, linux.build_on_docker)
assert build_on_docker.call_count == 6 assert build_on_docker.call_count == 6