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

Lee-W 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 4bd832ad602 Fix BaseBotoWaiter deferrable test failing without 
aiobotocore (#73019)
4bd832ad602 is described below

commit 4bd832ad602968a67188b89f937119c278a39b79
Author: Wei Lee <[email protected]>
AuthorDate: Sat Sep 12 15:13:52 2026 +0800

    Fix BaseBotoWaiter deferrable test failing without aiobotocore (#73019)
---
 .../unit/amazon/aws/waiters/test_base_waiter.py    | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/providers/amazon/tests/unit/amazon/aws/waiters/test_base_waiter.py 
b/providers/amazon/tests/unit/amazon/aws/waiters/test_base_waiter.py
index d797962e547..3918c4d4ba1 100644
--- a/providers/amazon/tests/unit/amazon/aws/waiters/test_base_waiter.py
+++ b/providers/amazon/tests/unit/amazon/aws/waiters/test_base_waiter.py
@@ -78,20 +78,30 @@ class TestBaseBotoWaiter:
         )
         assert result is waiter_instance
 
-    @mock.patch("aiobotocore.waiter.create_waiter_with_client")
-    def test_waiter_deferrable(self, mock_async_create_waiter, mock_client):
-        async_waiter_instance = mock.MagicMock()
-        mock_async_create_waiter.return_value = async_waiter_instance
-
+    @mock.patch.object(BaseBotoWaiter, "_get_async_waiter_with_client", 
autospec=True)
+    def test_waiter_deferrable(self, mock_get_async_waiter, mock_client):
         boto_waiter = BaseBotoWaiter(
             client=mock_client, model_config=SAMPLE_WAITER_MODEL_CONFIG, 
deferrable=True
         )
         result = boto_waiter.waiter("sample_waiter")
 
+        mock_get_async_waiter.assert_called_once_with(boto_waiter, 
waiter_name="sample_waiter")
+        assert result is mock_get_async_waiter.return_value
+
+    def test_get_async_waiter_with_client(self, mock_client):
+        # aiobotocore is an optional extra, so it has to be imported inside 
the test
+        pytest.importorskip("aiobotocore")
+
+        boto_waiter = BaseBotoWaiter(
+            client=mock_client, model_config=SAMPLE_WAITER_MODEL_CONFIG, 
deferrable=True
+        )
+        with mock.patch("aiobotocore.waiter.create_waiter_with_client") as 
mock_async_create_waiter:
+            result = boto_waiter.waiter("sample_waiter")
+
         mock_async_create_waiter.assert_called_once_with(
             waiter_name="sample_waiter", waiter_model=boto_waiter.model, 
client=mock_client
         )
-        assert result is async_waiter_instance
+        assert result is mock_async_create_waiter.return_value
 
     def test_waiter_with_real_botocore_creation(self, mock_client):
         boto_waiter = BaseBotoWaiter(

Reply via email to