Skip to content

Commit d262bba

Browse files
zweckjfrenck
authored andcommitted
Make migration specific on version 1
1 parent f274fcc commit d262bba

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

homeassistant/components/onedrive/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,10 @@ async def _migrate_backup_files(client: OneDriveClient, backup_folder_id: str) -
124124
"""Migrate backup files to metadata version 2."""
125125
files = await client.list_drive_items(backup_folder_id)
126126
for file in files:
127-
if file.description and "homeassistant_version" in file.description:
128-
metadata = loads(unescape(file.description))
129-
if metadata["metadata_version"] != 1:
130-
continue
127+
if file.description and '"metadata_version": 1' in (
128+
metadata_json := unescape(file.description)
129+
):
130+
metadata = loads(metadata_json)
131131
del metadata["metadata_version"]
132132
metadata_filename = file.name.rsplit(".", 1)[0] + ".metadata.json"
133133
metadata_file = await client.upload_file(

tests/components/onedrive/test_init.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ async def test_load_unload_config_entry(
2020
hass: HomeAssistant,
2121
mock_config_entry: MockConfigEntry,
2222
mock_onedrive_client_init: MagicMock,
23+
mock_onedrive_client: MagicMock,
2324
) -> None:
2425
"""Test loading and unloading the integration."""
2526
await setup_integration(hass, mock_config_entry)
@@ -28,6 +29,10 @@ async def test_load_unload_config_entry(
2829
token_callback = mock_onedrive_client_init.call_args[0][0]
2930
assert await token_callback() == "mock-access-token"
3031

32+
# make sure metadata migration is not called
33+
assert mock_onedrive_client.upload_file.call_count == 0
34+
assert mock_onedrive_client.update_drive_item.call_count == 0
35+
3136
assert mock_config_entry.state is ConfigEntryState.LOADED
3237

3338
await hass.config_entries.async_unload(mock_config_entry.entry_id)

0 commit comments

Comments
 (0)