From c43b7d10d88b2b6d141fdf8380e0e7972b9543fd Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 28 Feb 2020 11:12:16 -0800 Subject: [PATCH] revent saving/deleting Lovelace config in safe mode (#32319) --- homeassistant/components/lovelace/__init__.py | 6 ++++++ tests/components/lovelace/test_init.py | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/homeassistant/components/lovelace/__init__.py b/homeassistant/components/lovelace/__init__.py index fc8cb67894b..b986c61ea36 100644 --- a/homeassistant/components/lovelace/__init__.py +++ b/homeassistant/components/lovelace/__init__.py @@ -104,6 +104,9 @@ class LovelaceStorage: async def async_save(self, config): """Save config.""" + if self._hass.config.safe_mode: + raise HomeAssistantError("Deleting not supported in safe mode") + if self._data is None: await self._load() self._data["config"] = config @@ -112,6 +115,9 @@ class LovelaceStorage: async def async_delete(self): """Delete config.""" + if self._hass.config.safe_mode: + raise HomeAssistantError("Deleting not supported in safe mode") + await self.async_save(None) async def _load(self): diff --git a/tests/components/lovelace/test_init.py b/tests/components/lovelace/test_init.py index 82e7b3bc2ac..c79e447f5af 100644 --- a/tests/components/lovelace/test_init.py +++ b/tests/components/lovelace/test_init.py @@ -45,6 +45,16 @@ async def test_lovelace_from_storage(hass, hass_ws_client, hass_storage): assert not response["success"] assert response["error"]["code"] == "config_not_found" + await client.send_json( + {"id": 9, "type": "lovelace/config/save", "config": {"yo": "hello"}} + ) + response = await client.receive_json() + assert not response["success"] + + await client.send_json({"id": 10, "type": "lovelace/config/delete"}) + response = await client.receive_json() + assert not response["success"] + async def test_lovelace_from_storage_save_before_load( hass, hass_ws_client, hass_storage