You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by mo...@apache.org on 2024/09/05 11:09:42 UTC

(airflow) 01/01: test: make flaky OL test wait for future callback done

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

mobuchowski pushed a commit to branch make-sure-log-callback-done
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 17720715cce7b21a5171935ef85b7899302e654f
Author: Maciej Obuchowski <ob...@gmail.com>
AuthorDate: Thu Sep 5 13:02:55 2024 +0200

    test: make flaky OL test wait for future callback done
    
    Signed-off-by: Maciej Obuchowski <ob...@gmail.com>
---
 tests/providers/openlineage/plugins/test_listener.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/tests/providers/openlineage/plugins/test_listener.py b/tests/providers/openlineage/plugins/test_listener.py
index 2fbe27f23d..44c204e7af 100644
--- a/tests/providers/openlineage/plugins/test_listener.py
+++ b/tests/providers/openlineage/plugins/test_listener.py
@@ -17,8 +17,8 @@
 from __future__ import annotations
 
 import datetime as dt
-import threading
 import uuid
+from concurrent.futures import Future
 from contextlib import suppress
 from typing import Callable
 from unittest import mock
@@ -606,26 +606,28 @@ def test_listener_on_dag_run_state_changes_configure_process_pool_size(mock_exec
     mock_executor.return_value.submit.assert_called_once()
 
 
-@pytest.mark.flaky(reruns=5)
 def test_listener_logs_failed_serialization():
     listener = OpenLineageListener()
-    listener.log = MagicMock()
+    callback_future = Future()
+
+    listener.log = MagicMock(side_effect=lambda: callback_future.set_result(True))
     listener.adapter = OpenLineageAdapter(
         client=OpenLineageClient(transport=ConsoleTransport(config=ConsoleConfig()))
     )
     event_time = dt.datetime.now()
-
     fut = listener.submit_callable(
         listener.adapter.dag_failed,
         dag_id="",
         run_id="",
         end_date=event_time,
-        execution_date=threading.Thread(),
+        execution_date=callback_future,
         dag_run_state=DagRunState.FAILED,
         task_ids=["task_id"],
         msg="",
     )
     assert fut.exception(10)
+    assert callback_future.done()
+    listener.log.debug.assert_not_called()
     listener.log.warning.assert_called_once()