2022-07-28 15:24:31 +00:00
|
|
|
"""Unit tests for ZHA backup platform."""
|
2024-03-08 13:44:56 +00:00
|
|
|
|
2024-06-02 20:55:48 +00:00
|
|
|
from unittest.mock import AsyncMock, patch
|
2023-10-09 13:01:05 +00:00
|
|
|
|
|
|
|
from zigpy.application import ControllerApplication
|
2022-07-28 15:24:31 +00:00
|
|
|
|
|
|
|
from homeassistant.components.zha.backup import async_post_backup, async_pre_backup
|
2023-02-17 17:54:26 +00:00
|
|
|
from homeassistant.core import HomeAssistant
|
2022-07-28 15:24:31 +00:00
|
|
|
|
|
|
|
|
2023-10-09 13:01:05 +00:00
|
|
|
async def test_pre_backup(
|
|
|
|
hass: HomeAssistant, zigpy_app_controller: ControllerApplication, setup_zha
|
|
|
|
) -> None:
|
2022-07-28 15:24:31 +00:00
|
|
|
"""Test backup creation when `async_pre_backup` is called."""
|
2023-10-09 13:01:05 +00:00
|
|
|
await setup_zha()
|
|
|
|
|
|
|
|
zigpy_app_controller.backups.create_backup = AsyncMock()
|
|
|
|
await async_pre_backup(hass)
|
2022-07-28 15:24:31 +00:00
|
|
|
|
2023-10-09 13:01:05 +00:00
|
|
|
zigpy_app_controller.backups.create_backup.assert_called_once_with(
|
|
|
|
load_devices=True
|
|
|
|
)
|
2022-07-28 15:24:31 +00:00
|
|
|
|
|
|
|
|
2024-06-02 20:55:48 +00:00
|
|
|
@patch("homeassistant.components.zha.backup.get_zha_gateway", side_effect=ValueError())
|
|
|
|
async def test_pre_backup_no_gateway(hass: HomeAssistant, setup_zha) -> None:
|
|
|
|
"""Test graceful backup failure when no gateway exists."""
|
|
|
|
await setup_zha()
|
|
|
|
await async_pre_backup(hass)
|
|
|
|
|
|
|
|
|
2023-02-17 17:54:26 +00:00
|
|
|
async def test_post_backup(hass: HomeAssistant, setup_zha) -> None:
|
2022-07-28 15:24:31 +00:00
|
|
|
"""Test no-op `async_post_backup`."""
|
|
|
|
await setup_zha()
|
|
|
|
await async_post_backup(hass)
|