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

gopidesu 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 cea8a0cfc81 Add default conn name to asana provider operators (#52185)
cea8a0cfc81 is described below

commit cea8a0cfc81ae47660fef775fb2609312894dce8
Author: GPK <[email protected]>
AuthorDate: Tue Jun 24 22:51:54 2025 +0100

    Add default conn name to asana provider operators (#52185)
    
    * Add default conn name to asana provider operators
    
    * Update tests
---
 .../providers/asana/operators/asana_tasks.py       |  8 +--
 .../tests/unit/asana/operators/test_asana_tasks.py | 75 ++++++++++++++++++++++
 2 files changed, 79 insertions(+), 4 deletions(-)

diff --git 
a/providers/asana/src/airflow/providers/asana/operators/asana_tasks.py 
b/providers/asana/src/airflow/providers/asana/operators/asana_tasks.py
index 39ba24002cc..04a44bed9cf 100644
--- a/providers/asana/src/airflow/providers/asana/operators/asana_tasks.py
+++ b/providers/asana/src/airflow/providers/asana/operators/asana_tasks.py
@@ -53,9 +53,9 @@ class AsanaCreateTaskOperator(BaseOperator):
     def __init__(
         self,
         *,
-        conn_id: str,
         name: str,
         task_parameters: dict | None = None,
+        conn_id: str = "asana_default",
         **kwargs,
     ) -> None:
         super().__init__(**kwargs)
@@ -92,9 +92,9 @@ class AsanaUpdateTaskOperator(BaseOperator):
     def __init__(
         self,
         *,
-        conn_id: str,
         asana_task_gid: str,
         task_parameters: dict,
+        conn_id: str = "asana_default",
         **kwargs,
     ) -> None:
         super().__init__(**kwargs)
@@ -124,8 +124,8 @@ class AsanaDeleteTaskOperator(BaseOperator):
     def __init__(
         self,
         *,
-        conn_id: str,
         asana_task_gid: str,
+        conn_id: str = "asana_default",
         **kwargs,
     ) -> None:
         super().__init__(**kwargs)
@@ -160,8 +160,8 @@ class AsanaFindTaskOperator(BaseOperator):
     def __init__(
         self,
         *,
-        conn_id: str,
         search_parameters: dict | None = None,
+        conn_id: str = "asana_default",
         **kwargs,
     ) -> None:
         super().__init__(**kwargs)
diff --git a/providers/asana/tests/unit/asana/operators/test_asana_tasks.py 
b/providers/asana/tests/unit/asana/operators/test_asana_tasks.py
index f2276452059..1c1737a5648 100644
--- a/providers/asana/tests/unit/asana/operators/test_asana_tasks.py
+++ b/providers/asana/tests/unit/asana/operators/test_asana_tasks.py
@@ -37,6 +37,27 @@ class TestAsanaTaskOperators:
     @pytest.fixture(autouse=True)
     def setup_connections(self, create_connection_without_db):
         create_connection_without_db(Connection(conn_id="asana_test", 
conn_type="asana", password="test"))
+        create_connection_without_db(Connection(conn_id="asana_default", 
conn_type="asana", password="test"))
+
+    @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
+    def test_asana_create_task_operator_with_default_conn(self, 
mock_asana_hook):
+        """
+        Tests that the AsanaCreateTaskOperator uses the default connection.
+        """
+
+        mock_hook_instance = MagicMock()
+        mock_asana_hook.return_value = mock_hook_instance
+        mock_hook_instance.create_task.return_value = {"gid": "1"}
+
+        create_task = AsanaCreateTaskOperator(
+            task_id="create_task",
+            name="test",
+            task_parameters={"workspace": "1"},
+        )
+        result = create_task.execute({})
+        assert create_task.conn_id == "asana_default"
+        mock_hook_instance.create_task.assert_called_once_with("test", 
{"workspace": "1"})
+        assert result == "1"
 
     @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
     def test_asana_create_task_operator(self, mock_asana_hook):
@@ -58,6 +79,26 @@ class TestAsanaTaskOperators:
         mock_hook_instance.create_task.assert_called_once_with("test", 
{"workspace": "1"})
         assert result == "1"
 
+    @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
+    def test_asana_find_task_operator_with_default_conn(self, mock_asana_hook):
+        """
+        Tests that the AsanaFindTaskOperator uses the default connection.
+        """
+
+        mock_hook_instance = MagicMock()
+        mock_asana_hook.return_value = mock_hook_instance
+        mock_hook_instance.find_task.return_value = {"gid": "1"}
+
+        find_task = AsanaFindTaskOperator(
+            task_id="find_task",
+            search_parameters={"project": "test"},
+        )
+        assert find_task.conn_id == "asana_default"
+
+        result = find_task.execute({})
+        mock_hook_instance.find_task.assert_called_once_with({"project": 
"test"})
+        assert result == {"gid": "1"}
+
     @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
     def test_asana_find_task_operator(self, mock_asana_hook):
         """
@@ -77,6 +118,23 @@ class TestAsanaTaskOperators:
         mock_hook_instance.find_task.assert_called_once_with({"project": 
"test"})
         assert result == {"gid": "1"}
 
+    @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
+    def test_asana_update_task_operator_default_conn(self, mock_asana_hook):
+        """
+        Tests that the AsanaUpdateTaskOperator uses the default connection.
+        """
+
+        mock_hook_instance = MagicMock()
+        mock_asana_hook.return_value = mock_hook_instance
+        update_task = AsanaUpdateTaskOperator(
+            task_id="update_task",
+            asana_task_gid="test",
+            task_parameters={"completed": True},
+        )
+        assert update_task.conn_id == "asana_default"
+        update_task.execute({})
+        mock_hook_instance.update_task.assert_called_once_with("test", 
{"completed": True})
+
     @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
     def test_asana_update_task_operator(self, mock_asana_hook):
         """
@@ -93,6 +151,23 @@ class TestAsanaTaskOperators:
         update_task.execute({})
         mock_hook_instance.update_task.assert_called_once_with("test", 
{"completed": True})
 
+    @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
+    def test_asana_delete_task_operator_with_default_conn(self, 
mock_asana_hook):
+        """
+        Tests that the AsanaDeleteTaskOperator uses the default connection.
+        """
+
+        mock_hook_instance = MagicMock()
+        mock_asana_hook.return_value = mock_hook_instance
+
+        delete_task = AsanaDeleteTaskOperator(
+            task_id="delete_task",
+            asana_task_gid="test",
+        )
+        delete_task.execute({})
+        assert delete_task.conn_id == "asana_default"
+        mock_hook_instance.delete_task.assert_called_once_with("test")
+
     @patch("airflow.providers.asana.operators.asana_tasks.AsanaHook")
     def test_asana_delete_task_operator(self, mock_asana_hook):
         """

Reply via email to