From f0048c1569b32ee038fe4ee2f9e72d36e0ce395c Mon Sep 17 00:00:00 2001 From: Laura Brehm Date: Fri, 27 Sep 2024 15:05:08 +0100 Subject: [PATCH] tests/exec: add test for exit code from exec Execs should return the exit code of the exec'd process, if it started. Signed-off-by: Laura Brehm --- tests/integration/models_containers_test.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/integration/models_containers_test.py b/tests/integration/models_containers_test.py index c65f3d7f8..4e94e7506 100644 --- a/tests/integration/models_containers_test.py +++ b/tests/integration/models_containers_test.py @@ -353,6 +353,15 @@ def test_exec_run_success(self): assert exec_output[0] == 0 assert exec_output[1] == b"hello\n" + def test_exec_run_error_code_from_exec(self): + client = docker.from_env(version=TEST_API_VERSION) + container = client.containers.run( + "alpine", "sleep 20", detach=True + ) + self.tmp_containers.append(container.id) + exec_output = container.exec_run("sh -c 'exit 42'") + assert exec_output[0] == 42 + def test_exec_run_failed(self): client = docker.from_env(version=TEST_API_VERSION) container = client.containers.run( @@ -363,7 +372,7 @@ def test_exec_run_failed(self): # older versions of docker return `126` in the case that an exec cannot # be started due to a missing executable. We're fixing this for the # future, so accept both for now. - assert exec_output[0] == 127 or exec_output == 126 + assert exec_output[0] == 127 or exec_output[0] == 126 def test_kill(self): client = docker.from_env(version=TEST_API_VERSION)