jedcunningham commented on code in PR #28808:
URL: https://github.com/apache/airflow/pull/28808#discussion_r1084275635
##########
kubernetes_tests/test_kubernetes_pod_operator.py:
##########
@@ -1153,3 +1153,134 @@ def test_using_resources(self):
do_xcom_push=False,
resources=resources,
)
+
+ def test_changing_base_container_name_with_get_logs(self):
+ k = KubernetesPodOperator(
+ namespace="default",
+ image="ubuntu:16.04",
+ cmds=["bash", "-cx"],
+ arguments=["echo 10"],
+ labels=self.labels,
+ task_id=str(uuid4()),
+ in_cluster=False,
+ do_xcom_push=False,
+ get_logs=True,
+ base_container_name="apple-sauce",
+ )
+ assert k.base_container_name == "apple-sauce"
+ context = create_context(k)
+ with mock.patch.object(
+ k.pod_manager, "fetch_container_logs",
wraps=k.pod_manager.fetch_container_logs
+ ) as mock_fetch_container_logs:
+ k.execute(context)
+
+ assert mock_fetch_container_logs.call_args[1]["container_name"] ==
"apple-sauce"
+ actual_pod = self.api_client.sanitize_for_serialization(k.pod)
+ self.expected_pod["spec"]["containers"][0]["name"] = "apple-sauce"
+ assert self.expected_pod["spec"] == actual_pod["spec"]
+
+ def test_changing_base_container_name_no_logs(self):
+ """
+ This test checks BOTH a modified base container name AND the
get_logs=False flow..
+ and as a result, also checks that the flow works with fast containers
+ See #26796
Review Comment:
```suggestion
This test checks BOTH a modified base container name AND the
get_logs=False flow,
and as a result, also checks that the flow works with fast containers
See https://github.com/apache/airflow/issues/26796
```
##########
kubernetes_tests/test_kubernetes_pod_operator.py:
##########
@@ -1153,3 +1153,134 @@ def test_using_resources(self):
do_xcom_push=False,
resources=resources,
)
+
+ def test_changing_base_container_name_with_get_logs(self):
+ k = KubernetesPodOperator(
+ namespace="default",
+ image="ubuntu:16.04",
+ cmds=["bash", "-cx"],
+ arguments=["echo 10"],
+ labels=self.labels,
+ task_id=str(uuid4()),
+ in_cluster=False,
+ do_xcom_push=False,
+ get_logs=True,
+ base_container_name="apple-sauce",
+ )
+ assert k.base_container_name == "apple-sauce"
+ context = create_context(k)
+ with mock.patch.object(
+ k.pod_manager, "fetch_container_logs",
wraps=k.pod_manager.fetch_container_logs
+ ) as mock_fetch_container_logs:
+ k.execute(context)
+
+ assert mock_fetch_container_logs.call_args[1]["container_name"] ==
"apple-sauce"
+ actual_pod = self.api_client.sanitize_for_serialization(k.pod)
+ self.expected_pod["spec"]["containers"][0]["name"] = "apple-sauce"
+ assert self.expected_pod["spec"] == actual_pod["spec"]
+
+ def test_changing_base_container_name_no_logs(self):
+ """
+ This test checks BOTH a modified base container name AND the
get_logs=False flow..
+ and as a result, also checks that the flow works with fast containers
+ See #26796
+ """
+ k = KubernetesPodOperator(
+ namespace="default",
+ image="ubuntu:16.04",
+ cmds=["bash", "-cx"],
+ arguments=["echo 10"],
+ labels=self.labels,
+ task_id=str(uuid4()),
+ in_cluster=False,
+ do_xcom_push=False,
+ get_logs=False,
+ base_container_name="apple-sauce",
+ )
+ assert k.base_container_name == "apple-sauce"
+ context = create_context(k)
+ with mock.patch.object(
+ k.pod_manager, "await_container_completion",
wraps=k.pod_manager.await_container_completion
+ ) as mock_await_container_completion:
+ k.execute(context)
+
+ assert mock_await_container_completion.call_args[1]["container_name"]
== "apple-sauce"
+ actual_pod = self.api_client.sanitize_for_serialization(k.pod)
+ self.expected_pod["spec"]["containers"][0]["name"] = "apple-sauce"
+ assert self.expected_pod["spec"] == actual_pod["spec"]
+
+ def test_changing_base_container_name_no_logs_long(self):
+ """
+ Similar to test_changing_base_container_name_no_logs, but ensures that
+ pods running longer than 1 second work too. See #26796
Review Comment:
```suggestion
pods running longer than 1 second work too.
See https://github.com/apache/airflow/issues/26796
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]