async def test_notification_link(updater: HaUpdater, server, time: FakeTime, global_info, supervisor: SimulatedSupervisor): await updater.update() assert not updater._stale() assert updater._state() == "waiting" verifyEntity(supervisor, "binary_sensor.backups_stale", "off", STALE_ATTRIBUTES) verifyEntity(supervisor, "sensor.backup_state", "waiting", { 'friendly_name': 'Backup State', 'last_backup': 'Never', 'last_uploaded': 'Never', 'backups': [], 'backups_in_google_drive': 0, 'backups_in_home_assistant': 0, 'size_in_home_assistant': "0.0 B", 'size_in_google_drive': "0.0 B" }) assert supervisor.getNotification() is None global_info.failed(Exception()) global_info.url = "http://localhost/test" time.advanceDay() await updater.update() assert supervisor.getNotification() == { 'message': 'The add-on is having trouble making backups and needs attention. Please visit the add-on [status page](http://localhost/test) for details.', 'title': 'Home Assistant Google Drive Backup is Having Trouble', 'notification_id': 'backup_broken' }
async def test_notification_clears(updater: HaUpdater, server, time: FakeTime, global_info, supervisor: SimulatedSupervisor): await updater.update() assert not updater._stale() assert updater._state() == "waiting" assert supervisor.getNotification() is None global_info.failed(Exception()) time.advanceDay() await updater.update() assert supervisor.getNotification() is not None global_info.success() await updater.update() assert supervisor.getNotification() is None
async def test_publish_for_failure(updater: HaUpdater, server, time: FakeTime, global_info: GlobalInfo, supervisor: SimulatedSupervisor): global_info.success() await updater.update() assert supervisor.getNotification() is None time.advanceDay() global_info.failed(Exception()) await updater.update() assert supervisor.getNotification() is not None time.advanceDay() global_info.failed(Exception()) await updater.update() assert supervisor.getNotification() is not None global_info.success() await updater.update() assert supervisor.getNotification() is None
async def test_init_failure(updater: HaUpdater, global_info: GlobalInfo, time: FakeTime, server, supervisor: SimulatedSupervisor): await updater.update() assert not updater._stale() assert updater._state() == "waiting" global_info.failed(Exception()) assert not updater._stale() assert updater._state() == "backed_up" assert supervisor.getNotification() is None time.advanceDay() assert updater._stale() assert updater._state() == "error" await updater.update() assert supervisor.getNotification() == { 'message': 'The add-on is having trouble making backups and needs attention. Please visit the add-on status page for details.', 'title': 'Home Assistant Google Drive Backup is Having Trouble', 'notification_id': 'backup_broken' }
async def test_init(updater: HaUpdater, global_info, supervisor: SimulatedSupervisor, server): await updater.update() assert not updater._stale() assert updater._state() == "waiting" verifyEntity(supervisor, "binary_sensor.backups_stale", "off", STALE_ATTRIBUTES) verifyEntity(supervisor, "sensor.backup_state", "waiting", { 'friendly_name': 'Backup State', 'last_backup': 'Never', 'last_uploaded': 'Never', 'backups': [], 'backups_in_google_drive': 0, 'backups_in_home_assistant': 0, 'size_in_google_drive': "0.0 B", 'size_in_home_assistant': '0.0 B' }) assert supervisor.getNotification() is None global_info.success() assert not updater._stale() assert updater._state() == "backed_up"