Rename DockerContainer -> OCIContainer, and a few other things

OCIContainer.container_engine -> OCIContainer.engine
OCIContainer.docker_image -> OCIContainer.image

Variables that refer to 'docker_images' have been renamed to
'container_images'
This commit is contained in:
Joe Rickerby
2022-06-27 17:46:22 +01:00
parent 2457006796
commit 1d2e5d5d8f
8 changed files with 89 additions and 112 deletions
+16 -38
View File
@@ -9,7 +9,7 @@ from pathlib import Path, PurePath, PurePosixPath
import pytest
import toml
from cibuildwheel.docker_container import DockerContainer
from cibuildwheel.docker_container import OCIContainer
from cibuildwheel.environment import EnvironmentAssignmentBash
# Test utilities
@@ -42,30 +42,24 @@ def container_engine(request):
def test_simple(container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
assert container.call(["echo", "hello"], capture_output=True) == "hello\n"
def test_no_lf(container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
assert container.call(["printf", "hello"], capture_output=True) == "hello"
def test_debug_info(container_engine):
container = DockerContainer(container_engine=container_engine, docker_image=DEFAULT_IMAGE)
container = OCIContainer(engine=container_engine, image=DEFAULT_IMAGE)
print(container.debug_info())
with container:
pass
def test_environment(container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
assert (
container.call(
["sh", "-c", "echo $TEST_VAR"], env={"TEST_VAR": "1"}, capture_output=True
@@ -75,21 +69,17 @@ def test_environment(container_engine):
def test_cwd(container_engine):
with DockerContainer(
container_engine=container_engine,
docker_image=DEFAULT_IMAGE,
cwd="/cibuildwheel/working_directory",
with OCIContainer(
engine=container_engine, image=DEFAULT_IMAGE, cwd="/cibuildwheel/working_directory"
) as container:
assert container.call(["pwd"], capture_output=True) == "/cibuildwheel/working_directory\n"
assert container.call(["pwd"], capture_output=True, cwd="/opt") == "/opt\n"
def test_container_removed(container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
docker_containers_listing = subprocess.run(
f"{container.container_engine} container ls",
f"{container.engine} container ls",
shell=True,
check=True,
stdout=subprocess.PIPE,
@@ -100,7 +90,7 @@ def test_container_removed(container_engine):
old_container_name = container.name
docker_containers_listing = subprocess.run(
f"{container.container_engine} container ls",
f"{container.engine} container ls",
shell=True,
check=True,
stdout=subprocess.PIPE,
@@ -119,9 +109,7 @@ def test_large_environment(container_engine):
"d": "0" * long_env_var_length,
}
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
# check the length of d
assert (
container.call(["sh", "-c", "echo ${#d}"], env=large_environment, capture_output=True)
@@ -130,9 +118,7 @@ def test_large_environment(container_engine):
def test_binary_output(container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
# note: the below embedded snippets are in python2
# check that we can pass though arbitrary binary data without erroring
@@ -182,9 +168,7 @@ def test_binary_output(container_engine):
def test_file_operation(tmp_path: Path, container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
# test copying a file in
test_binary_data = bytes(random.randrange(256) for _ in range(1000))
original_test_file = tmp_path / "test.dat"
@@ -199,9 +183,7 @@ def test_file_operation(tmp_path: Path, container_engine):
def test_dir_operations(tmp_path: Path, container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
test_binary_data = bytes(random.randrange(256) for _ in range(1000))
original_test_file = tmp_path / "test.dat"
original_test_file.write_bytes(test_binary_data)
@@ -230,9 +212,7 @@ def test_dir_operations(tmp_path: Path, container_engine):
def test_environment_executor(container_engine):
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
assignment = EnvironmentAssignmentBash("TEST=$(echo 42)")
assert assignment.evaluated_value({}, container.environment_executor) == "42"
@@ -298,9 +278,7 @@ def test_podman_vfs(container_engine, tmp_path: Path, monkeypatch):
monkeypatch.setenv("CONTAINERS_CONF", str(vfs_containers_conf_fpath))
monkeypatch.setenv("CONTAINERS_STORAGE_CONF", str(vfs_containers_storage_conf_fpath))
with DockerContainer(
container_engine=container_engine, docker_image=DEFAULT_IMAGE
) as container:
with OCIContainer(engine=container_engine, image=DEFAULT_IMAGE) as container:
# test running a command
assert container.call(["echo", "hello"], capture_output=True) == "hello\n"
+7 -7
View File
@@ -21,16 +21,16 @@ def test_linux_container_split(tmp_path: Path, monkeypatch):
textwrap.dedent(
"""
[tool.cibuildwheel]
manylinux-x86_64-image = "normal_docker_image"
manylinux-i686-image = "normal_docker_image"
manylinux-x86_64-image = "normal_container_image"
manylinux-i686-image = "normal_container_image"
build = "*-manylinux_x86_64"
skip = "pp*"
archs = "x86_64 i686"
[[tool.cibuildwheel.overrides]]
select = "cp{38,39,310}-*"
manylinux-x86_64-image = "other_docker_image"
manylinux-i686-image = "other_docker_image"
manylinux-x86_64-image = "other_container_image"
manylinux-i686-image = "other_container_image"
[[tool.cibuildwheel.overrides]]
select = "cp39-*"
@@ -57,14 +57,14 @@ def test_linux_container_split(tmp_path: Path, monkeypatch):
pprint(build_steps)
assert build_steps[0].docker_image == "normal_docker_image"
assert build_steps[0].container_image == "normal_container_image"
assert identifiers(build_steps[0]) == ["cp36-manylinux_x86_64", "cp37-manylinux_x86_64"]
assert before_alls(build_steps[0]) == ["", ""]
assert build_steps[1].docker_image == "other_docker_image"
assert build_steps[1].container_image == "other_container_image"
assert identifiers(build_steps[1]) == ["cp38-manylinux_x86_64", "cp310-manylinux_x86_64"]
assert before_alls(build_steps[1]) == ["", ""]
assert build_steps[2].docker_image == "other_docker_image"
assert build_steps[2].container_image == "other_container_image"
assert identifiers(build_steps[2]) == ["cp39-manylinux_x86_64"]
assert before_alls(build_steps[2]) == ["echo 'a cp39-only command'"]
+2 -2
View File
@@ -11,7 +11,7 @@ else:
from cibuildwheel.__main__ import main
from cibuildwheel.environment import ParsedEnvironment
from cibuildwheel.options import BuildOptions, _get_pinned_docker_images
from cibuildwheel.options import BuildOptions, _get_pinned_container_images
from cibuildwheel.util import BuildSelector, resources_dir
# CIBW_PLATFORM is tested in main_platform_test.py
@@ -339,6 +339,6 @@ def test_defaults(platform, intercepted_build_args):
if platform == "linux":
assert build_options.manylinux_images
pinned_images = _get_pinned_docker_images()
pinned_images = _get_pinned_container_images()
default_x86_64_image = pinned_images["x86_64"][defaults["manylinux-x86_64-image"]]
assert build_options.manylinux_images["x86_64"] == default_x86_64_image
+11 -11
View File
@@ -35,7 +35,7 @@ def mock_build_docker(monkeypatch):
monkeypatch.setattr(subprocess, "Popen", fail_on_call)
monkeypatch.setattr(subprocess, "run", ignore_call)
monkeypatch.setattr(util, "download", fail_on_call)
monkeypatch.setattr("cibuildwheel.linux.DockerContainer", ignore_context_call)
monkeypatch.setattr("cibuildwheel.linux.OCIContainer", ignore_context_call)
monkeypatch.setattr("cibuildwheel.linux.build_on_docker", mock.Mock(spec=linux.build_on_docker))
monkeypatch.setattr("cibuildwheel.util.print_new_wheels", ignore_context_call)
@@ -52,7 +52,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
# In Python 3.8+, this can be simplified to [0].kwargs
kwargs = build_on_docker.call_args_list[0][1]
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert not kwargs["docker"]["simulate_32_bit"]
@@ -60,7 +60,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
assert identifiers == {f"{x}-manylinux_x86_64" for x in ALL_IDS}
kwargs = build_on_docker.call_args_list[1][1]
assert "quay.io/pypa/manylinux2014_i686" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/manylinux2014_i686" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert kwargs["docker"]["simulate_32_bit"]
@@ -68,7 +68,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
assert identifiers == {f"{x}-manylinux_i686" for x in ALL_IDS}
kwargs = build_on_docker.call_args_list[2][1]
assert "quay.io/pypa/musllinux_1_1_x86_64" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/musllinux_1_1_x86_64" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert not kwargs["docker"]["simulate_32_bit"]
@@ -78,7 +78,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
}
kwargs = build_on_docker.call_args_list[3][1]
assert "quay.io/pypa/musllinux_1_1_i686" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/musllinux_1_1_i686" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert kwargs["docker"]["simulate_32_bit"]
@@ -118,7 +118,7 @@ before-all = "true"
assert build_on_docker.call_count == 6
kwargs = build_on_docker.call_args_list[0][1]
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert not kwargs["docker"]["simulate_32_bit"]
@@ -127,7 +127,7 @@ before-all = "true"
assert kwargs["options"].build_options("cp36-manylinux_x86_64").before_all == "true"
kwargs = build_on_docker.call_args_list[1][1]
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert not kwargs["docker"]["simulate_32_bit"]
@@ -138,7 +138,7 @@ before-all = "true"
assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == ""
kwargs = build_on_docker.call_args_list[2][1]
assert "quay.io/pypa/manylinux_2_24_x86_64" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/manylinux_2_24_x86_64" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert not kwargs["docker"]["simulate_32_bit"]
identifiers = {x.identifier for x in kwargs["platform_configs"]}
@@ -150,7 +150,7 @@ before-all = "true"
}
kwargs = build_on_docker.call_args_list[3][1]
assert "quay.io/pypa/manylinux2014_i686" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/manylinux2014_i686" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert kwargs["docker"]["simulate_32_bit"]
@@ -158,7 +158,7 @@ before-all = "true"
assert identifiers == {f"{x}-manylinux_i686" for x in ALL_IDS}
kwargs = build_on_docker.call_args_list[4][1]
assert "quay.io/pypa/musllinux_1_1_x86_64" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/musllinux_1_1_x86_64" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert not kwargs["docker"]["simulate_32_bit"]
@@ -168,7 +168,7 @@ before-all = "true"
}
kwargs = build_on_docker.call_args_list[5][1]
assert "quay.io/pypa/musllinux_1_1_i686" in kwargs["docker"]["docker_image"]
assert "quay.io/pypa/musllinux_1_1_i686" in kwargs["docker"]["image"]
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
assert kwargs["docker"]["simulate_32_bit"]
+5 -5
View File
@@ -4,7 +4,7 @@ import pytest
from cibuildwheel.__main__ import get_build_identifiers
from cibuildwheel.environment import parse_environment
from cibuildwheel.options import Options, _get_pinned_docker_images
from cibuildwheel.options import Options, _get_pinned_container_images
from .utils import get_default_command_line_arguments
@@ -58,18 +58,18 @@ test_command: 'pyproject'
assert default_build_options.environment == parse_environment('FOO="BAR"')
all_pinned_docker_images = _get_pinned_docker_images()
pinned_x86_64_docker_image = all_pinned_docker_images["x86_64"]
all_pinned_container_images = _get_pinned_container_images()
pinned_x86_64_container_image = all_pinned_container_images["x86_64"]
local = options.build_options("cp38-manylinux_x86_64")
assert local.manylinux_images is not None
assert local.test_command == "pyproject"
assert local.manylinux_images["x86_64"] == pinned_x86_64_docker_image["manylinux1"]
assert local.manylinux_images["x86_64"] == pinned_x86_64_container_image["manylinux1"]
local = options.build_options("cp37-manylinux_x86_64")
assert local.manylinux_images is not None
assert local.test_command == "pyproject-override"
assert local.manylinux_images["x86_64"] == pinned_x86_64_docker_image["manylinux2014"]
assert local.manylinux_images["x86_64"] == pinned_x86_64_container_image["manylinux2014"]
def test_passthrough(tmp_path, monkeypatch):