DEVX-21: fix: always start dockerd in CI runner for molecule tests

This commit is contained in:
emil
2026-06-23 23:49:13 +00:00
parent f206a9cd8d
commit e76741bfad
4 changed files with 31 additions and 30 deletions
+20 -11
View File
@@ -21,11 +21,6 @@ class TestIsDockerReady:
class TestStartDockerDaemon:
@patch("devx.molecule.start_docker.is_docker_ready", return_value=True)
def test_already_running(self, mock_ready: MagicMock) -> None:
assert start_docker_daemon() is True
mock_ready.assert_called_once()
@patch("devx.molecule.start_docker.time.sleep")
@patch("devx.molecule.start_docker.is_docker_ready")
@patch("devx.molecule.start_docker.subprocess.Popen")
@@ -37,11 +32,11 @@ class TestStartDockerDaemon:
mock_ready: MagicMock,
mock_sleep: MagicMock,
) -> None:
# First call: initial check (not ready). Second: first loop iteration (ready).
# First loop iteration: dockerd not ready yet. Second: ready.
mock_ready.side_effect = [False, True]
assert start_docker_daemon(timeout=5) is True
mock_popen.assert_called_once()
mock_sleep.assert_not_called()
mock_sleep.assert_called_once_with(1)
@patch("devx.molecule.start_docker.time.sleep")
@patch("devx.molecule.start_docker.is_docker_ready", return_value=False)
@@ -54,11 +49,26 @@ class TestStartDockerDaemon:
mock_ready: MagicMock,
mock_sleep: MagicMock,
) -> None:
# is_docker_ready always returns False: 1 initial + 3 loop iterations = 4 calls
assert start_docker_daemon(timeout=3) is False
mock_popen.assert_called_once()
assert mock_sleep.call_count == 3
@patch("devx.molecule.start_docker.time.sleep")
@patch("devx.molecule.start_docker.is_docker_ready")
@patch("devx.molecule.start_docker.subprocess.Popen")
@patch("builtins.open", new_callable=mock_open)
def test_ready_on_first_check(
self,
mock_file: MagicMock,
mock_popen: MagicMock,
mock_ready: MagicMock,
mock_sleep: MagicMock,
) -> None:
mock_ready.return_value = True
assert start_docker_daemon(timeout=5) is True
mock_popen.assert_called_once()
mock_sleep.assert_not_called()
@patch("devx.molecule.start_docker.time.sleep")
@patch("devx.molecule.start_docker.is_docker_ready")
@patch("devx.molecule.start_docker.subprocess.Popen")
@@ -70,9 +80,8 @@ class TestStartDockerDaemon:
mock_ready: MagicMock,
mock_sleep: MagicMock,
) -> None:
# First call: initial check (not ready). Then 9 loop iterations (not ready),
# 10th iteration (ready).
mock_ready.side_effect = [False] * 10 + [True]
# 9 iterations not ready, 10th ready.
mock_ready.side_effect = [False] * 9 + [True]
assert start_docker_daemon(timeout=10) is True
assert mock_sleep.call_count == 9