Only create snapshot if add-on update will be done (#47424)
This commit is contained in:
parent
ee69e93b46
commit
0350a6ed21
2 changed files with 11 additions and 11 deletions
|
@ -173,6 +173,7 @@ class AddonManager:
|
||||||
if not update_available:
|
if not update_available:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
await self.async_create_snapshot()
|
||||||
await async_update_addon(self._hass, ADDON_SLUG)
|
await async_update_addon(self._hass, ADDON_SLUG)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
|
@ -184,7 +185,6 @@ class AddonManager:
|
||||||
if not self._update_task or self._update_task.done():
|
if not self._update_task or self._update_task.done():
|
||||||
LOGGER.info("Trying to update the Z-Wave JS add-on")
|
LOGGER.info("Trying to update the Z-Wave JS add-on")
|
||||||
self._update_task = self._async_schedule_addon_operation(
|
self._update_task = self._async_schedule_addon_operation(
|
||||||
self.async_create_snapshot,
|
|
||||||
self.async_update_addon,
|
self.async_update_addon,
|
||||||
catch_error=catch_error,
|
catch_error=catch_error,
|
||||||
)
|
)
|
||||||
|
|
|
@ -585,11 +585,13 @@ async def test_addon_info_failure(
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"addon_version, update_available, update_calls, update_addon_side_effect",
|
"addon_version, update_available, update_calls, snapshot_calls, "
|
||||||
|
"update_addon_side_effect, create_shapshot_side_effect",
|
||||||
[
|
[
|
||||||
("1.0", True, 1, None),
|
("1.0", True, 1, 1, None, None),
|
||||||
("1.0", False, 0, None),
|
("1.0", False, 0, 0, None, None),
|
||||||
("1.0", True, 1, HassioAPIError("Boom")),
|
("1.0", True, 1, 1, HassioAPIError("Boom"), None),
|
||||||
|
("1.0", True, 0, 1, None, HassioAPIError("Boom")),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_update_addon(
|
async def test_update_addon(
|
||||||
|
@ -604,11 +606,14 @@ async def test_update_addon(
|
||||||
addon_version,
|
addon_version,
|
||||||
update_available,
|
update_available,
|
||||||
update_calls,
|
update_calls,
|
||||||
|
snapshot_calls,
|
||||||
update_addon_side_effect,
|
update_addon_side_effect,
|
||||||
|
create_shapshot_side_effect,
|
||||||
):
|
):
|
||||||
"""Test update the Z-Wave JS add-on during entry setup."""
|
"""Test update the Z-Wave JS add-on during entry setup."""
|
||||||
addon_info.return_value["version"] = addon_version
|
addon_info.return_value["version"] = addon_version
|
||||||
addon_info.return_value["update_available"] = update_available
|
addon_info.return_value["update_available"] = update_available
|
||||||
|
create_shapshot.side_effect = create_shapshot_side_effect
|
||||||
update_addon.side_effect = update_addon_side_effect
|
update_addon.side_effect = update_addon_side_effect
|
||||||
client.connect.side_effect = InvalidServerVersion("Invalid version")
|
client.connect.side_effect = InvalidServerVersion("Invalid version")
|
||||||
device = "/test"
|
device = "/test"
|
||||||
|
@ -630,12 +635,7 @@ async def test_update_addon(
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
assert entry.state == ENTRY_STATE_SETUP_RETRY
|
assert entry.state == ENTRY_STATE_SETUP_RETRY
|
||||||
assert create_shapshot.call_count == 1
|
assert create_shapshot.call_count == snapshot_calls
|
||||||
assert create_shapshot.call_args == call(
|
|
||||||
hass,
|
|
||||||
{"name": f"addon_core_zwave_js_{addon_version}", "addons": ["core_zwave_js"]},
|
|
||||||
partial=True,
|
|
||||||
)
|
|
||||||
assert update_addon.call_count == update_calls
|
assert update_addon.call_count == update_calls
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue