From d5415dcbeb56a1fcac5a3f0f690fc6caa44b185d Mon Sep 17 00:00:00 2001 From: Anastasia Dusak <61540676+k-a-il@users.noreply.github.com> Date: Mon, 19 May 2025 17:31:36 +0200 Subject: [PATCH] Tests: Added retries to test for running container in TestDocker --- tests/integration/docker_utils/test_docker.py | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/tests/integration/docker_utils/test_docker.py b/tests/integration/docker_utils/test_docker.py index 65b219ae09042..8882247c6301d 100644 --- a/tests/integration/docker_utils/test_docker.py +++ b/tests/integration/docker_utils/test_docker.py @@ -70,6 +70,10 @@ def _is_podman_test() -> bool: return os.getenv("DOCKER_CMD") == "podman" +def _assert_container_state(docker_client: ContainerClient, name: str, is_running: bool): + assert docker_client.is_container_running(name) == is_running + + @pytest.fixture def dummy_container(create_container): """Returns a container that is created but not started""" @@ -1273,22 +1277,39 @@ def test_run_container_non_existent_image(self, docker_client: ContainerClient): def test_running_container_names(self, docker_client: ContainerClient, dummy_container): docker_client.start_container(dummy_container.container_id) name = dummy_container.container_name - assert name in docker_client.get_running_container_names() + retry( + lambda: _assert_container_state(docker_client, name, is_running=True), + sleep=2, + retries=5, + ) docker_client.stop_container(name) - assert name not in docker_client.get_running_container_names() + retry( + lambda: _assert_container_state(docker_client, name, is_running=False), + sleep=2, + retries=5, + ) def test_is_container_running(self, docker_client: ContainerClient, dummy_container): docker_client.start_container(dummy_container.container_id) name = dummy_container.container_name - def _assert_container_state(is_running: bool): - assert docker_client.is_container_running(name) == is_running - - retry(lambda: _assert_container_state(is_running=True), sleep=2, retries=5) + retry( + lambda: _assert_container_state(docker_client, name, is_running=True), + sleep=2, + retries=5, + ) docker_client.restart_container(name) - retry(lambda: _assert_container_state(is_running=True), sleep=2, retries=5) + retry( + lambda: _assert_container_state(docker_client, name, is_running=True), + sleep=2, + retries=5, + ) docker_client.stop_container(name) - retry(lambda: _assert_container_state(is_running=False), sleep=2, retries=5) + retry( + lambda: _assert_container_state(docker_client, name, is_running=False), + sleep=2, + retries=5, + ) @markers.skip_offline def test_docker_image_names(self, docker_client: ContainerClient):