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

shahar1 pushed a commit to branch airflow-ctl/v0-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/airflow-ctl/v0-1-test by this 
push:
     new c3732d078b0 [airflow-ctl/v0-1-test] Fix incorrect asset queued-event 
endpoint paths in airflowctl (#70461) (#76044)
c3732d078b0 is described below

commit c3732d078b0a4d9cceefe93e29dc5cd92906a976
Author: Shahar Epstein <[email protected]>
AuthorDate: Fri Oct 30 17:56:05 2026 +0200

    [airflow-ctl/v0-1-test] Fix incorrect asset queued-event endpoint paths in 
airflowctl (#70461) (#76044)
    
    (cherry picked from commit 15df3aaac07284aa4d4afecd242aa65cd9685761)
    
    Co-authored-by: Henry Chen <[email protected]>
---
 airflow-ctl/src/airflowctl/api/operations.py       |  6 ++---
 .../tests/airflow_ctl/api/test_operations.py       | 31 ++++++++++++++++++++++
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/airflow-ctl/src/airflowctl/api/operations.py 
b/airflow-ctl/src/airflowctl/api/operations.py
index 5ab5d87fdae..33e3807e4aa 100644
--- a/airflow-ctl/src/airflowctl/api/operations.py
+++ b/airflow-ctl/src/airflowctl/api/operations.py
@@ -328,17 +328,17 @@ class AssetsOperations(BaseOperations):
 
     def delete_queued_events(self, asset_id: str) -> str | ServerResponseError:
         """Delete a queued event for an asset."""
-        self.client.delete(f"assets/{asset_id}/queuedEvents/")
+        self.client.delete(f"assets/{asset_id}/queuedEvents")
         return asset_id
 
     def delete_dag_queued_events(self, dag_id: str, before: str) -> str | 
ServerResponseError:
         """Delete a queued event for a Dag."""
-        self.client.delete(f"assets/dags/{dag_id}/queuedEvents", 
params={"before": before})
+        self.client.delete(f"dags/{dag_id}/assets/queuedEvents", 
params={"before": before})
         return dag_id
 
     def delete_queued_event(self, dag_id: str, asset_id: str) -> str | 
ServerResponseError:
         """Delete a queued event for a Dag."""
-        
self.client.delete(f"assets/dags/{dag_id}/assets/{asset_id}/queuedEvents/")
+        self.client.delete(f"dags/{dag_id}/assets/{asset_id}/queuedEvents")
         return asset_id
 
     def list_state_store(self, asset_id: str) -> 
AssetStateStoreCollectionResponse | ServerResponseError:
diff --git a/airflow-ctl/tests/airflow_ctl/api/test_operations.py 
b/airflow-ctl/tests/airflow_ctl/api/test_operations.py
index 31985a866bc..e1848c26509 100644
--- a/airflow-ctl/tests/airflow_ctl/api/test_operations.py
+++ b/airflow-ctl/tests/airflow_ctl/api/test_operations.py
@@ -594,6 +594,37 @@ class TestAssetsOperations:
         response = client.assets.clear_state_store(self.asset_id)
         assert response == self.asset_id
 
+    def test_delete_queued_events(self):
+        def handle_request(request: httpx.Request) -> httpx.Response:
+            assert request.method == "DELETE"
+            assert request.url.path == 
f"/api/v2/assets/{self.asset_id}/queuedEvents"
+            return httpx.Response(204)
+
+        client = make_api_client(transport=httpx.MockTransport(handle_request))
+        response = client.assets.delete_queued_events(asset_id=self.asset_id)
+        assert response == self.asset_id
+
+    def test_delete_dag_queued_events(self):
+        def handle_request(request: httpx.Request) -> httpx.Response:
+            assert request.method == "DELETE"
+            assert request.url.path == 
f"/api/v2/dags/{self.dag_id}/assets/queuedEvents"
+            assert request.url.params["before"] == self.before
+            return httpx.Response(204)
+
+        client = make_api_client(transport=httpx.MockTransport(handle_request))
+        response = client.assets.delete_dag_queued_events(dag_id=self.dag_id, 
before=self.before)
+        assert response == self.dag_id
+
+    def test_delete_queued_event(self):
+        def handle_request(request: httpx.Request) -> httpx.Response:
+            assert request.method == "DELETE"
+            assert request.url.path == 
f"/api/v2/dags/{self.dag_id}/assets/{self.asset_id}/queuedEvents"
+            return httpx.Response(204)
+
+        client = make_api_client(transport=httpx.MockTransport(handle_request))
+        response = client.assets.delete_queued_event(dag_id=self.dag_id, 
asset_id=self.asset_id)
+        assert response == self.asset_id
+
 
 class TestBackfillOperations:
     backfill_id: NonNegativeInt = 1

Reply via email to