Fix onedrive does not fail on delete not found (#136910)

* Fix onedrive does not fail on delete not found

* Fix onedrive does not fail on delete not found
This commit is contained in:
Josef Zweck 2025-01-30 16:33:59 +01:00 committed by GitHub
parent 773375e7b0
commit d148bd9b0c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 2 deletions

View File

@ -190,7 +190,13 @@ class OneDriveBackupAgent(BackupAgent):
**kwargs: Any,
) -> None:
"""Delete a backup file."""
await self._get_backup_file_item(backup_id).delete()
try:
await self._get_backup_file_item(backup_id).delete()
except APIError as err:
if err.response_status_code == 404:
return
raise
@handle_backup_errors
async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]:

View File

@ -156,6 +156,28 @@ async def test_agents_delete(
mock_drive_items.delete.assert_called_once()
async def test_agents_delete_not_found_does_not_throw(
hass: HomeAssistant,
hass_ws_client: WebSocketGenerator,
mock_drive_items: MagicMock,
) -> None:
"""Test agent delete backup."""
mock_drive_items.delete = AsyncMock(side_effect=APIError(response_status_code=404))
client = await hass_ws_client(hass)
await client.send_json_auto_id(
{
"type": "backup/delete",
"backup_id": BACKUP_METADATA["backup_id"],
}
)
response = await client.receive_json()
assert response["success"]
assert response["result"] == {"agent_errors": {}}
mock_drive_items.delete.assert_called_once()
async def test_agents_upload(
hass_client: ClientSessionGenerator,
caplog: pytest.LogCaptureFixture,
@ -257,7 +279,7 @@ async def test_agents_download(
("side_effect", "error"),
[
(
APIError(response_status_code=404, message="File not found."),
APIError(response_status_code=500),
"Backup operation failed",
),
(TimeoutError(), "Backup operation timed out"),