Skip to content

Commit 2aae59b

Browse files
TaragolisCloud Composer Team
authored and
Cloud Composer Team
committed
Do not catch too broad exception in WasbHook.delete_container (#36034)
GitOrigin-RevId: 3f354c0c92870e4e72ad536abd1c9cf49462b206
1 parent 00d7225 commit 2aae59b

File tree

2 files changed

+24
-3
lines changed
  • airflow/providers/microsoft/azure/hooks
  • tests/providers/microsoft/azure/hooks

2 files changed

+24
-3
lines changed

airflow/providers/microsoft/azure/hooks/wasb.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -487,9 +487,9 @@ def delete_container(self, container_name: str) -> None:
487487
self._get_container_client(container_name).delete_container()
488488
self.log.info("Deleted container: %s", container_name)
489489
except ResourceNotFoundError:
490-
self.log.info("Unable to delete container %s (not found)", container_name)
491-
except:
492-
self.log.info("Error deleting container: %s", container_name)
490+
self.log.warning("Unable to delete container %s (not found)", container_name)
491+
except Exception:
492+
self.log.error("Error deleting container: %s", container_name)
493493
raise
494494

495495
def delete_blobs(self, container_name: str, *blobs, **kwargs) -> None:

tests/providers/microsoft/azure/hooks/test_wasb.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from unittest import mock
2121

2222
import pytest
23+
from azure.core.exceptions import ResourceNotFoundError
2324
from azure.storage.blob import BlobServiceClient
2425
from azure.storage.blob._models import BlobProperties
2526

@@ -518,6 +519,26 @@ def test_delete_container(self, mocked_blob_service_client):
518519
mocked_container_client.assert_called_once_with("mycontainer")
519520
mocked_container_client.return_value.delete_container.assert_called()
520521

522+
@pytest.mark.parametrize("exc", [ValueError, RuntimeError])
523+
def test_delete_container_generic_exception(self, exc: type[Exception], caplog):
524+
hook = WasbHook(wasb_conn_id=self.azure_shared_key_test)
525+
with mock.patch.object(WasbHook, "_get_container_client") as m:
526+
m.return_value.delete_container.side_effect = exc("FakeException")
527+
caplog.clear()
528+
caplog.set_level("ERROR")
529+
with pytest.raises(exc, match="FakeException"):
530+
hook.delete_container("mycontainer")
531+
assert "Error deleting container: mycontainer" in caplog.text
532+
533+
def test_delete_container_resource_not_found(self, caplog):
534+
hook = WasbHook(wasb_conn_id=self.azure_shared_key_test)
535+
with mock.patch.object(WasbHook, "_get_container_client") as m:
536+
m.return_value.delete_container.side_effect = ResourceNotFoundError("FakeException")
537+
caplog.clear()
538+
caplog.set_level("WARNING")
539+
hook.delete_container("mycontainer")
540+
assert "Unable to delete container mycontainer (not found)" in caplog.text
541+
521542
@mock.patch.object(WasbHook, "delete_blobs")
522543
def test_delete_single_blob(self, delete_blobs, mocked_blob_service_client):
523544
hook = WasbHook(wasb_conn_id=self.azure_shared_key_test)

0 commit comments

Comments
 (0)