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

taragolis pushed a commit to branch 
restore-local-settings-after-stackdriver-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit b28875960c65359982231677c2f8b07922debe49
Author: Andrey Anshin <[email protected]>
AuthorDate: Wed Apr 3 21:22:15 2024 +0400

    Restore airflow_local_settings after the test_should_use_configured_log_name
---
 .../cloud/log/test_stackdriver_task_handler.py     | 40 +++++++++++++---------
 1 file changed, 23 insertions(+), 17 deletions(-)

diff --git a/tests/providers/google/cloud/log/test_stackdriver_task_handler.py 
b/tests/providers/google/cloud/log/test_stackdriver_task_handler.py
index 5c01b9ff52..737cedefaa 100644
--- a/tests/providers/google/cloud/log/test_stackdriver_task_handler.py
+++ b/tests/providers/google/cloud/log/test_stackdriver_task_handler.py
@@ -27,6 +27,7 @@ from google.cloud.logging_v2.types import 
ListLogEntriesRequest, ListLogEntriesR
 from airflow.providers.google.cloud.log.stackdriver_task_handler import 
StackdriverTaskHandler
 from airflow.utils import timezone
 from airflow.utils.state import TaskInstanceState
+from tests.test_utils.config import conf_vars
 from tests.test_utils.db import clear_db_dags, clear_db_runs
 
 
@@ -71,29 +72,34 @@ def test_should_pass_message_to_client(mock_client, 
mock_get_creds_and_project_i
 
@mock.patch("airflow.providers.google.cloud.log.stackdriver_task_handler.get_credentials_and_project_id")
 
@mock.patch("airflow.providers.google.cloud.log.stackdriver_task_handler.gcp_logging.Client")
 def test_should_use_configured_log_name(mock_client, 
mock_get_creds_and_project_id):
-    mock_get_creds_and_project_id.return_value = ("creds", "project_id")
+    import importlib
+    import logging
 
-    with mock.patch.dict(
-        "os.environ",
-        AIRFLOW__LOGGING__REMOTE_LOGGING="true",
-        AIRFLOW__LOGGING__REMOTE_BASE_LOG_FOLDER="stackdriver://host/path",
-    ):
-        import importlib
-        import logging
+    from airflow import settings
+    from airflow.config_templates import airflow_local_settings
 
-        from airflow import settings
-        from airflow.config_templates import airflow_local_settings
+    mock_get_creds_and_project_id.return_value = ("creds", "project_id")
 
+    try:
+        with conf_vars(
+            {
+                ("logging", "remote_logging"): "True",
+                ("logging", "remote_base_log_folder"): 
"stackdriver://host/path",
+            }
+        ):
+            importlib.reload(airflow_local_settings)
+            settings.configure_logging()
+
+            logger = logging.getLogger("airflow.task")
+            handler = logger.handlers[0]
+            assert isinstance(handler, StackdriverTaskHandler)
+            with mock.patch.object(handler, "transport_type") as 
transport_type_mock:
+                logger.error("foo")
+                
transport_type_mock.assert_called_once_with(mock_client.return_value, "path")
+    finally:
         importlib.reload(airflow_local_settings)
         settings.configure_logging()
 
-        logger = logging.getLogger("airflow.task")
-        handler = logger.handlers[0]
-        assert isinstance(handler, StackdriverTaskHandler)
-        with mock.patch.object(handler, "transport_type") as 
transport_type_mock:
-            logger.error("foo")
-            
transport_type_mock.assert_called_once_with(mock_client.return_value, "path")
-
 
 @pytest.mark.db_test
 class TestStackdriverLoggingHandlerTask:

Reply via email to