From c67317571cd5391c71e3102fca8fbfed384b8b36 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 16 Mar 2022 13:15:56 +0100 Subject: [PATCH] Fix issues with old protection flag (#3521) * Fix issues with old protection flag * fix typing --- supervisor/backups/validate.py | 11 ++++++++++- tests/backups/test_validate.py | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/supervisor/backups/validate.py b/supervisor/backups/validate.py index 0420eeeea..f70a9784c 100644 --- a/supervisor/backups/validate.py +++ b/supervisor/backups/validate.py @@ -67,6 +67,13 @@ def v1_folderlist(folder_data: list[str]) -> list[str]: return folder_data +def v1_protected(protected: bool | str) -> bool: + """Cleanup old protected handling.""" + if isinstance(protected, bool): + return protected + return True + + # pylint: disable=no-value-for-parameter SCHEMA_BACKUP = vol.Schema( { @@ -76,7 +83,9 @@ SCHEMA_BACKUP = vol.Schema( vol.Required(ATTR_NAME): str, vol.Required(ATTR_DATE): str, vol.Optional(ATTR_COMPRESSED, default=True): vol.Boolean(), - vol.Optional(ATTR_PROTECTED, default=False): vol.Boolean(), + vol.Optional(ATTR_PROTECTED, default=False): vol.All( + v1_protected, vol.Boolean() + ), vol.Optional(ATTR_CRYPTO, default=None): vol.Maybe(CRYPTO_AES128), vol.Optional(ATTR_HOMEASSISTANT, default=None): vol.All( v1_homeassistant, diff --git a/tests/backups/test_validate.py b/tests/backups/test_validate.py index 2f4c80663..ae8e28392 100644 --- a/tests/backups/test_validate.py +++ b/tests/backups/test_validate.py @@ -41,3 +41,18 @@ def test_v1_folder_migration(): ) assert data[validate.ATTR_FOLDERS] == [validate.FOLDER_ADDONS] + + +def test_v1_protected(): + """Test v1 protection migration.""" + data = validate.SCHEMA_BACKUP( + { + **VALID_DEFAULT, + **{ + validate.ATTR_PROTECTED: "8", + validate.ATTR_TYPE: validate.BackupType.FULL, + }, + } + ) + + assert data[validate.ATTR_PROTECTED] is True