1313from aiohasupervisor import SupervisorClient
1414from aiohasupervisor .models import (
1515 AddonSet ,
16+ BackupLocationAttributes ,
1617 BackupsOptions ,
1718 DownloadBackupOptions ,
1819 Folder ,
2425 RemoveBackupOptions ,
2526 UploadBackupOptions ,
2627)
27- from aiohasupervisor .models .backups import BackupLocationAttributes
2828
2929from . import load_fixture
3030from .const import SUPERVISOR_URL
@@ -143,23 +143,18 @@ async def test_backup_options_location() -> None:
143143 "location" : ["test" , None ]
144144 }
145145 assert FullBackupOptions (location = "test" ).to_dict () == {"location" : "test" }
146- assert FullBackupOptions (location = None ).to_dict () == {"location" : None }
147146 assert FullBackupOptions ().to_dict () == {}
148147
149148 assert PartialBackupOptions (
150- location = ["test" , None ], folders = {Folder .SSL }
149+ location = ["test" , ".local" ], folders = {Folder .SSL }
151150 ).to_dict () == {
152- "location" : ["test" , None ],
151+ "location" : ["test" , ".local" ],
153152 "folders" : ["ssl" ],
154153 }
155154 assert PartialBackupOptions (location = "test" , folders = {Folder .SSL }).to_dict () == {
156155 "location" : "test" ,
157156 "folders" : ["ssl" ],
158157 }
159- assert PartialBackupOptions (location = None , folders = {Folder .SSL }).to_dict () == {
160- "location" : None ,
161- "folders" : ["ssl" ],
162- }
163158 assert PartialBackupOptions (folders = {Folder .SSL }).to_dict () == {"folders" : ["ssl" ]}
164159
165160
@@ -177,10 +172,11 @@ def backup_callback(url: str, **kwargs: dict[str, Any]) -> CallbackResult: # no
177172 [
178173 (FullBackupOptions (name = "Test" , background = True ), None ),
179174 (FullBackupOptions (name = "Test" , background = False ), "9ecf0028" ),
180- (FullBackupOptions (name = "Test" , background = False , location = None ), "9ecf0028" ),
181175 (FullBackupOptions (name = "Test" , background = False , location = "test" ), "9ecf0028" ),
182176 (
183- FullBackupOptions (name = "Test" , background = False , location = {None , "test" }),
177+ FullBackupOptions (
178+ name = "Test" , background = False , location = {".local" , "test" }
179+ ),
184180 "9ecf0028" ,
185181 ),
186182 (
@@ -223,12 +219,6 @@ async def test_backups_full_backup(
223219 PartialBackupOptions (name = "Test" , background = False , addons = {"core_ssh" }),
224220 "9ecf0028" ,
225221 ),
226- (
227- PartialBackupOptions (
228- name = "Test" , background = False , location = None , addons = {"core_ssh" }
229- ),
230- "9ecf0028" ,
231- ),
232222 (
233223 PartialBackupOptions (
234224 name = "Test" , background = False , location = "test" , addons = {"core_ssh" }
@@ -239,7 +229,7 @@ async def test_backups_full_backup(
239229 PartialBackupOptions (
240230 name = "Test" ,
241231 background = False ,
242- location = {None , "test" },
232+ location = {".local" , "test" },
243233 addons = {"core_ssh" },
244234 ),
245235 "9ecf0028" ,
@@ -307,8 +297,6 @@ async def test_backup_info(
307297 assert result .slug == "69558789"
308298 assert result .type == "partial"
309299 assert result .date == datetime (2024 , 5 , 31 , 0 , 0 , 0 , 0 , UTC )
310- assert result .size == 0.01
311- assert result .size_bytes == 10123
312300 assert result .compressed is True
313301 assert result .addons [0 ].slug == "core_mosquitto"
314302 assert result .addons [0 ].name == "Mosquitto broker"
@@ -324,8 +312,8 @@ async def test_backup_info(
324312 assert result .folders == []
325313 assert result .homeassistant_exclude_database is None
326314 assert result .extra is None
327- assert result .location is None
328- assert result .locations == { None }
315+ assert result .location_attributes [ ".local" ]. protected is False
316+ assert result .location_attributes [ ".local" ]. size_bytes == 10123
329317
330318
331319async def test_backup_info_no_homeassistant (
@@ -370,8 +358,10 @@ async def test_backup_info_with_multiple_locations(
370358 result = await supervisor_client .backups .backup_info ("d13dedd0" )
371359 assert result .slug == "69558789"
372360 assert result .type == "partial"
373- assert result .location is None
374- assert result .locations == {None , "Test" }
361+ assert result .location_attributes [".local" ].protected is False
362+ assert result .location_attributes [".local" ].size_bytes == 10123
363+ assert result .location_attributes ["Test" ].protected is False
364+ assert result .location_attributes ["Test" ].size_bytes == 10123
375365
376366
377367@pytest .mark .parametrize (
@@ -396,7 +386,6 @@ async def test_remove_backup(
396386 None ,
397387 FullRestoreOptions (password = "abc123" ), # noqa: S106
398388 FullRestoreOptions (background = True ),
399- FullRestoreOptions (location = None ),
400389 FullRestoreOptions (location = "test" ),
401390 ],
402391)
@@ -419,7 +408,7 @@ async def test_full_restore(
419408 "options" ,
420409 [
421410 PartialRestoreOptions (addons = {"core_ssh" }),
422- PartialRestoreOptions (homeassistant = True , location = None ),
411+ PartialRestoreOptions (homeassistant = True , location = ".local" ),
423412 PartialRestoreOptions (folders = {Folder .SHARE , Folder .SSL }, location = "test" ),
424413 PartialRestoreOptions (addons = {"core_ssh" }, background = True ),
425414 PartialRestoreOptions (addons = {"core_ssh" }, password = "abc123" ), # noqa: S106
@@ -444,7 +433,10 @@ async def test_partial_restore(
444433 ("options" , "query" ),
445434 [
446435 (None , "" ),
447- (UploadBackupOptions (location = {None , "test" }), "?location=&location=test" ),
436+ (
437+ UploadBackupOptions (location = {".local" , "test" }),
438+ "?location=.local&location=test" ,
439+ ),
448440 (UploadBackupOptions (filename = PurePath ("backup.tar" )), "?filename=backup.tar" ),
449441 ],
450442)
@@ -525,10 +517,6 @@ async def test_download_backup(
525517 PartialBackupOptions (homeassistant = True , location = "test" ),
526518 {"homeassistant" : True , "location" : "test" },
527519 ),
528- (
529- PartialBackupOptions (homeassistant = True , location = None ),
530- {"homeassistant" : True , "location" : None },
531- ),
532520 (
533521 PartialBackupOptions (homeassistant = True , filename = PurePath ("backup.tar" )),
534522 {"homeassistant" : True , "filename" : "backup.tar" },
@@ -559,7 +547,6 @@ async def test_partial_backup_model(
559547 {"location" : [".cloud_backup" , "test" ]},
560548 ),
561549 (FullBackupOptions (location = "test" ), {"location" : "test" }),
562- (FullBackupOptions (location = None ), {"location" : None }),
563550 (
564551 FullBackupOptions (filename = PurePath ("backup.tar" )),
565552 {"filename" : "backup.tar" },
0 commit comments