From 5842a7592727e0b4f58adb563629f2bace786976 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Fri, 10 Jul 2020 13:04:50 +0100 Subject: [PATCH] Flake8 fixes --- cibuildwheel/docker_container.py | 15 +++++++++------ unit_test/docker_container_test.py | 5 ++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cibuildwheel/docker_container.py b/cibuildwheel/docker_container.py index 6bd5cdf3..41b2f42f 100644 --- a/cibuildwheel/docker_container.py +++ b/cibuildwheel/docker_container.py @@ -7,7 +7,7 @@ import sys import uuid from os import PathLike from pathlib import Path, PurePath -from typing import Any, IO, Dict, List, Optional, Sequence, Union +from typing import IO, Dict, List, Optional, Sequence, Union class DockerContainer: @@ -78,17 +78,17 @@ class DockerContainer: # a container is running and the host filesystem is # mounted. https://github.com/moby/moby/issues/38995 # Use `docker exec` instead. - quote = lambda p: shlex.quote(str(p)) + if from_path.is_dir(): self.call(['mkdir', '-p', to_path]) subprocess.run( - f'tar cf - . | docker exec -i {self.name} tar -xC {quote(to_path)} -f -', + f'tar cf - . | docker exec -i {self.name} tar -xC {shell_quote(to_path)} -f -', shell=True, check=True, cwd=from_path) else: subprocess.run( - f'cat {quote(from_path)} | docker exec -i {self.name} sh -c "cat > {quote(to_path)}"', + f'cat {shell_quote(from_path)} | docker exec -i {self.name} sh -c "cat > {shell_quote(to_path)}"', shell=True, check=True) @@ -96,9 +96,8 @@ class DockerContainer: # note: we assume from_path is a dir to_path.mkdir(parents=True, exist_ok=True) - quote = lambda p: shlex.quote(str(p)) subprocess.run( - f'docker exec -i {self.name} tar -cC {quote(from_path)} -f - . | tar -xf -', + f'docker exec -i {self.name} tar -cC {shell_quote(from_path)} -f - . | tar -xf -', shell=True, check=True, cwd=to_path @@ -184,3 +183,7 @@ class DockerContainer: def environment_executor(self, command: str, environment: Dict[str, str]) -> str: # used as an EnvironmentExecutor to evaluate commands and capture output return self.call(shlex.split(command), env=environment) + + +def shell_quote(path: PurePath) -> str: + return shlex.quote(str(path)) diff --git a/unit_test/docker_container_test.py b/unit_test/docker_container_test.py index 6fe9f957..fed06174 100644 --- a/unit_test/docker_container_test.py +++ b/unit_test/docker_container_test.py @@ -1,10 +1,9 @@ -from pathlib import Path, PurePath import platform import random import shutil import subprocess import textwrap -from uuid import uuid4 +from pathlib import Path, PurePath import pytest @@ -117,6 +116,7 @@ def test_file_operations(tmp_path: Path): output = container.call(['cat', dst_file], capture_output=True) assert test_binary_data == bytes(output, encoding='utf8', errors='surrogateescape') + @pytest.mark.docker def test_dir_operations(tmp_path: Path): with DockerContainer(DEFAULT_IMAGE) as container: @@ -145,4 +145,3 @@ def test_dir_operations(tmp_path: Path): container.copy_out(dst_dir, new_test_dir) assert test_binary_data == (new_test_dir / 'test.dat').read_bytes() -