mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
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:
parent
773375e7b0
commit
d148bd9b0c
@ -190,7 +190,13 @@ class OneDriveBackupAgent(BackupAgent):
|
|||||||
**kwargs: Any,
|
**kwargs: Any,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Delete a backup file."""
|
"""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
|
@handle_backup_errors
|
||||||
async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]:
|
async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]:
|
||||||
|
@ -156,6 +156,28 @@ async def test_agents_delete(
|
|||||||
mock_drive_items.delete.assert_called_once()
|
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(
|
async def test_agents_upload(
|
||||||
hass_client: ClientSessionGenerator,
|
hass_client: ClientSessionGenerator,
|
||||||
caplog: pytest.LogCaptureFixture,
|
caplog: pytest.LogCaptureFixture,
|
||||||
@ -257,7 +279,7 @@ async def test_agents_download(
|
|||||||
("side_effect", "error"),
|
("side_effect", "error"),
|
||||||
[
|
[
|
||||||
(
|
(
|
||||||
APIError(response_status_code=404, message="File not found."),
|
APIError(response_status_code=500),
|
||||||
"Backup operation failed",
|
"Backup operation failed",
|
||||||
),
|
),
|
||||||
(TimeoutError(), "Backup operation timed out"),
|
(TimeoutError(), "Backup operation timed out"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user