From 06b33e5589b2936c51696f4b89f6dde512f614ae Mon Sep 17 00:00:00 2001
From: Bram Kragten <mail@bramkragten.nl>
Date: Tue, 31 Dec 2024 15:01:06 +0100
Subject: [PATCH] Set backup manager state to completed when restore is
 finished (#134283)

---
 homeassistant/components/backup/manager.py |  3 +++
 tests/components/hassio/test_backup.py     | 11 ++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/homeassistant/components/backup/manager.py b/homeassistant/components/backup/manager.py
index 9b20c82d709..9515ab89cd2 100644
--- a/homeassistant/components/backup/manager.py
+++ b/homeassistant/components/backup/manager.py
@@ -829,6 +829,9 @@ class BackupManager:
                 restore_folders=restore_folders,
                 restore_homeassistant=restore_homeassistant,
             )
+            self.async_on_backup_event(
+                RestoreBackupEvent(stage=None, state=RestoreBackupState.COMPLETED)
+            )
         except Exception:
             self.async_on_backup_event(
                 RestoreBackupEvent(stage=None, state=RestoreBackupState.FAILED)
diff --git a/tests/components/hassio/test_backup.py b/tests/components/hassio/test_backup.py
index c39574fd941..3c9440c41ff 100644
--- a/tests/components/hassio/test_backup.py
+++ b/tests/components/hassio/test_backup.py
@@ -942,7 +942,9 @@ async def test_reader_writer_restore(
 
     await client.send_json_auto_id({"type": "backup/subscribe_events"})
     response = await client.receive_json()
-    assert response["event"] == {"manager_state": "idle"}
+    assert response["event"] == {
+        "manager_state": "idle",
+    }
     response = await client.receive_json()
     assert response["success"]
 
@@ -980,6 +982,13 @@ async def test_reader_writer_restore(
     response = await client.receive_json()
     assert response["success"]
 
+    response = await client.receive_json()
+    assert response["event"] == {
+        "manager_state": "restore_backup",
+        "stage": None,
+        "state": "completed",
+    }
+
     response = await client.receive_json()
     assert response["event"] == {"manager_state": "idle"}
 
-- 
GitLab