From 024dded6d1d0ab20e626963747090d3d53ac47df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon-Martin=20Schr=C3=B6der?= Date: Fri, 10 Jan 2020 11:51:08 +0100 Subject: [PATCH] Echo command line option --docker-echo: Print commands being run --- src/lovely/pytest/docker/compose.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/lovely/pytest/docker/compose.py b/src/lovely/pytest/docker/compose.py index 553fb44..c425b89 100644 --- a/src/lovely/pytest/docker/compose.py +++ b/src/lovely/pytest/docker/compose.py @@ -55,9 +55,9 @@ class Services(object): https://github.com/AndreLouisCaron/pytest-docker """ - def __init__(self, compose_files, docker_ip, project_name='pytest'): + def __init__(self, compose_files, docker_ip, project_name='pytest', echo=False): self._docker_compose = DockerComposeExecutor( - compose_files, project_name + compose_files, project_name, echo ) self._services = {} self.docker_ip = docker_ip @@ -143,9 +143,10 @@ def wait_until_responsive(check, timeout, pause, class DockerComposeExecutor(object): - def __init__(self, compose_files, project_name): + def __init__(self, compose_files, project_name, echo=False): self._compose_files = compose_files self._project_name = project_name + self.echo = echo def execute(self, *subcommand): command = ["docker-compose"] @@ -155,6 +156,10 @@ def execute(self, *subcommand): command.append('-p') command.append(self._project_name) command += subcommand + + if self.echo: + print(" ".join(command)) + return execute(command) @@ -199,10 +204,12 @@ def docker_services(request, docker_compose_files, docker_ip, docker_services_pr The services will be stopped after all tests are run. """ keep_alive = request.config.getoption("--keepalive", False) + echo = request.config.getoption("--docker-echo", False) services = Services( docker_compose_files, docker_ip, - docker_services_project_name + docker_services_project_name, + echo ) yield services if not keep_alive: @@ -214,5 +221,8 @@ def pytest_addoption(parser): Add the --keepalive option for pytest. """ - parser.addoption("--keepalive", "-K", action="store_true", + group = parser.getgroup("lovely-pytest-docker") + group.addoption("--keepalive", "-K", action="store_true", default=False, help="Keep docker containers alive") + group.addoption("--docker-echo", action="store_true", + default=False, help="Print commands being run") \ No newline at end of file