Skip to content

Commit 6342448

Browse files
authored
Allow to get logs from compose (#93)
* Allow to get logs from compose * fixed escaping in compose documentation * use run instead of Popen to fetch logs from compose * fix to make log fetching <3.7 compatible
1 parent 7a7179d commit 6342448

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

testcontainers/compose.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ class DockerCompose(object):
3030
desired_capabilities=CHROME,
3131
)
3232
driver.get("http://automation-remarks.com")
33+
stdout, stderr = compose.get_logs()
34+
if stderr:
35+
print("Errors\\n:{}".format(stderr))
3336
3437
3538
.. code-block:: yaml
@@ -80,6 +83,16 @@ def stop(self):
8083
subprocess.call(["docker-compose", "-f", self.compose_file_name, "down", "-v"],
8184
cwd=self.filepath)
8285

86+
def get_logs(self):
87+
with blindspin.spinner():
88+
result = subprocess.run(
89+
["docker-compose", "-f", self.compose_file_name, "logs"],
90+
cwd=self.filepath,
91+
stdout=subprocess.PIPE,
92+
stderr=subprocess.PIPE,
93+
)
94+
return result.stdout, result.stderr
95+
8396
def get_service_port(self, service_name, port):
8497
return self._get_service_info(service_name, port)[1]
8598

tests/test_docker_compose.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,11 @@ def test_compose_wait_for_container_ready():
3131
with DockerCompose("tests") as compose:
3232
docker = DockerClient()
3333
compose.wait_for("http://%s:4444/wd/hub" % docker.host())
34+
35+
36+
def test_can_get_logs():
37+
with DockerCompose("tests") as compose:
38+
docker = DockerClient()
39+
compose.wait_for("http://%s:4444/wd/hub" % docker.host())
40+
stdout, stderr = compose.get_logs()
41+
assert stdout, 'There should be something on stdout'

0 commit comments

Comments
 (0)