This is an automated email from the ASF dual-hosted git repository.

jscheffl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new d5a8294de66 Add regression test for KPO awaiting pod start before 
init-container logs (#68503)
d5a8294de66 is described below

commit d5a8294de66122befd9374e1427a663bc16dc49f
Author: Jorge Rocamora <[email protected]>
AuthorDate: Sat Jun 13 22:11:52 2026 +0200

    Add regression test for KPO awaiting pod start before init-container logs 
(#68503)
---
 .../tests/unit/cncf/kubernetes/operators/test_pod.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git 
a/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py 
b/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py
index 9b280ff70f5..780d60be0ac 100644
--- a/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py
+++ b/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py
@@ -42,6 +42,7 @@ from airflow.providers.cncf.kubernetes.secret import Secret
 from airflow.providers.cncf.kubernetes.triggers.pod import ContainerState, 
KubernetesPodTrigger
 from airflow.providers.cncf.kubernetes.utils.pod_manager import (
     OnFinishAction,
+    PodLaunchTimeoutException,
     PodLoggingStatus,
     PodNotFoundException,
     PodPhase,
@@ -1167,6 +1168,25 @@ class TestKubernetesPodOperator:
         else:
             delete_pod_mock.assert_not_called()
 
+    @patch(f"{POD_MANAGER_CLASS}.delete_pod")
+    @patch(f"{KPO_MODULE}.KubernetesPodOperator.find_pod")
+    
@patch(f"{KPO_MODULE}.KubernetesPodOperator.await_init_containers_completion")
+    def 
test_execute_sync_checks_pod_start_before_following_init_container_logs(
+        self, await_init_mock, find_pod_mock, delete_pod_mock
+    ):
+        """Pod start is awaited before following init-container logs, so a 
Pending pod hits the
+        startup timeout instead of blocking forever in the init-log wait 
loop."""
+        find_pod_mock.return_value.status.phase = PodPhase.SUCCEEDED
+        self.await_start_mock.side_effect = PodLaunchTimeoutException("Pod 
took too long to start")
+        k = KubernetesPodOperator(task_id="task", 
init_container_logs=["init-container"])
+        context = create_context(k)
+        context["ti"].xcom_push = MagicMock()
+
+        with pytest.raises(PodLaunchTimeoutException, match="too long to 
start"):
+            k.execute(context=context)
+
+        await_init_mock.assert_not_called()
+
     @pytest.mark.asyncio
     @pytest.mark.parametrize("should_fail", [True, False])
     @patch(f"{POD_MANAGER_CLASS}.delete_pod")

Reply via email to