mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-06-16 23:16:30 +00:00
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
"""Test evaluation base."""
|
|
# pylint: disable=import-error,protected-access
|
|
from pathlib import Path
|
|
|
|
from supervisor.backups.backup import Backup
|
|
from supervisor.backups.const import BackupType
|
|
from supervisor.const import ATTR_DATE, ATTR_SLUG, ATTR_TYPE
|
|
from supervisor.coresys import CoreSys
|
|
from supervisor.resolution.const import ContextType, SuggestionType
|
|
from supervisor.resolution.data import Suggestion
|
|
from supervisor.resolution.fixups.clear_full_backup import FixupClearFullBackup
|
|
from supervisor.utils.dt import utcnow
|
|
from supervisor.utils.tar import SecureTarFile
|
|
|
|
|
|
async def test_fixup(coresys: CoreSys, tmp_path):
|
|
"""Test fixup."""
|
|
clear_full_backup = FixupClearFullBackup(coresys)
|
|
|
|
assert not clear_full_backup.auto
|
|
|
|
coresys.resolution.suggestions = Suggestion(
|
|
SuggestionType.CLEAR_FULL_BACKUP, ContextType.SYSTEM
|
|
)
|
|
|
|
for slug in ["sn1", "sn2", "sn3", "sn4", "sn5"]:
|
|
temp_tar = Path(tmp_path, f"{slug}.tar")
|
|
with SecureTarFile(temp_tar, "w"):
|
|
pass
|
|
backup = Backup(coresys, temp_tar)
|
|
backup._data = { # pylint: disable=protected-access
|
|
ATTR_SLUG: slug,
|
|
ATTR_DATE: utcnow().isoformat(),
|
|
ATTR_TYPE: BackupType.PARTIAL
|
|
if "1" in slug or "5" in slug
|
|
else BackupType.FULL,
|
|
}
|
|
coresys.backups._backups[backup.slug] = backup
|
|
|
|
newest_full_backup = coresys.backups._backups["sn4"]
|
|
|
|
assert newest_full_backup in coresys.backups.list_backups
|
|
assert (
|
|
len([x for x in coresys.backups.list_backups if x.sys_type == BackupType.FULL])
|
|
== 3
|
|
)
|
|
|
|
await clear_full_backup()
|
|
assert newest_full_backup in coresys.backups.list_backups
|
|
assert (
|
|
len([x for x in coresys.backups.list_backups if x.sys_type == BackupType.FULL])
|
|
== 1
|
|
)
|
|
|
|
assert len(coresys.resolution.suggestions) == 0
|