43
43
44
44
from tests_common .test_utils .compat import PythonOperator
45
45
from tests_common .test_utils .config import conf_vars
46
+ from tests_common .test_utils .executor_loader import clean_executor_loader
46
47
from tests_common .test_utils .version_compat import AIRFLOW_V_3_0_PLUS
47
48
48
49
if AIRFLOW_V_3_0_PLUS :
@@ -76,6 +77,7 @@ def teardown_method(self):
76
77
@pytest .mark .parametrize ("state" , [TaskInstanceState .RUNNING , TaskInstanceState .SUCCESS ])
77
78
def test__read_for_k8s_executor (self , mock_k8s_get_task_log , create_task_instance , state ):
78
79
"""Test for k8s executor, the log is read from get_task_log method"""
80
+ clean_executor_loader ()
79
81
mock_k8s_get_task_log .return_value = ([], [])
80
82
executor_name = "KubernetesExecutor"
81
83
ti = create_task_instance (
@@ -86,6 +88,7 @@ def test__read_for_k8s_executor(self, mock_k8s_get_task_log, create_task_instanc
86
88
)
87
89
ti .state = state
88
90
ti .triggerer_job = None
91
+ ti .executor = executor_name
89
92
with conf_vars ({("core" , "executor" ): executor_name }):
90
93
reload (executor_loader )
91
94
fth = FileTaskHandler ("" )
@@ -105,11 +108,12 @@ def test__read_for_k8s_executor(self, mock_k8s_get_task_log, create_task_instanc
105
108
pytest .param (k8s .V1Pod (metadata = k8s .V1ObjectMeta (name = "pod-name-xxx" )), "default" ),
106
109
],
107
110
)
108
- @patch . dict ( "os.environ " , AIRFLOW__CORE__EXECUTOR = " KubernetesExecutor" )
111
+ @conf_vars ({( "core " , "executor" ): " KubernetesExecutor"} )
109
112
@patch ("airflow.providers.cncf.kubernetes.kube_client.get_kube_client" )
110
113
def test_read_from_k8s_under_multi_namespace_mode (
111
114
self , mock_kube_client , pod_override , namespace_to_call
112
115
):
116
+ reload (executor_loader )
113
117
mock_read_log = mock_kube_client .return_value .read_namespaced_pod_log
114
118
mock_list_pod = mock_kube_client .return_value .list_namespaced_pod
115
119
@@ -139,6 +143,7 @@ def task_callable(ti):
139
143
)
140
144
ti = TaskInstance (task = task , run_id = dagrun .run_id )
141
145
ti .try_number = 3
146
+ ti .executor = "KubernetesExecutor"
142
147
143
148
logger = ti .log
144
149
ti .log .disabled = False
@@ -147,6 +152,8 @@ def task_callable(ti):
147
152
set_context (logger , ti )
148
153
ti .run (ignore_ti_state = True )
149
154
ti .state = TaskInstanceState .RUNNING
155
+ # clear executor_instances cache
156
+ file_handler .executor_instances = {}
150
157
file_handler .read (ti , 2 )
151
158
152
159
# first we find pod name
0 commit comments