From 0ef254bc9ad97bdd131f9e930e7dc5e107ce3087 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen <balloob@gmail.com>
Date: Fri, 3 Jan 2025 00:21:19 -0500
Subject: [PATCH] Fix backup dir not existing (#134506)

---
 homeassistant/components/backup/manager.py | 1 +
 tests/components/backup/test_manager.py    | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/homeassistant/components/backup/manager.py b/homeassistant/components/backup/manager.py
index 33405d97883..4d509003a21 100644
--- a/homeassistant/components/backup/manager.py
+++ b/homeassistant/components/backup/manager.py
@@ -1294,6 +1294,7 @@ class CoreBackupReaderWriter(BackupReaderWriter):
         if self._local_agent_id in agent_ids:
             local_agent = manager.local_backup_agents[self._local_agent_id]
             tar_file_path = local_agent.get_backup_path(backup.backup_id)
+            await async_add_executor_job(make_backup_dir, tar_file_path.parent)
             await async_add_executor_job(shutil.move, temp_file, tar_file_path)
         else:
             tar_file_path = temp_file
diff --git a/tests/components/backup/test_manager.py b/tests/components/backup/test_manager.py
index 0797eef2274..ad90e2e23bf 100644
--- a/tests/components/backup/test_manager.py
+++ b/tests/components/backup/test_manager.py
@@ -1397,6 +1397,9 @@ async def test_receive_backup(
 
     with (
         patch("pathlib.Path.open", open_mock),
+        patch(
+            "homeassistant.components.backup.manager.make_backup_dir"
+        ) as make_backup_dir_mock,
         patch("shutil.move") as move_mock,
         patch(
             "homeassistant.components.backup.manager.read_backup",
@@ -1412,6 +1415,7 @@ async def test_receive_backup(
 
     assert resp.status == 201
     assert open_mock.call_count == open_call_count
+    assert make_backup_dir_mock.call_count == move_call_count + 1
     assert move_mock.call_count == move_call_count
     for index, name in enumerate(move_path_names):
         assert move_mock.call_args_list[index].args[1].name == name
-- 
GitLab