Make BackupSyncMetadata model a dataclass (#130555)

Make backup BackupSyncMetadata model a dataclass
This commit is contained in:
Martin Hjelmare
2024-11-13 21:11:25 +01:00
committed by GitHub
parent 325738829d
commit 957ece747d
4 changed files with 30 additions and 30 deletions
+8 -8
View File
@@ -32,7 +32,7 @@ from homeassistant.util import dt as dt_util
from homeassistant.util.json import json_loads_object
from .const import DOMAIN, EXCLUDE_FROM_BACKUP, LOGGER
from .models import BaseBackup
from .models import BackupSyncMetadata, BaseBackup
from .sync_agent import BackupPlatformAgentProtocol, BackupSyncAgent
BUF_SIZE = 2**20 * 4 # 4MB
@@ -238,13 +238,13 @@ class BackupManager(BaseBackupManager[Backup]):
*(
agent.async_upload_backup(
path=backup.path,
metadata={
"homeassistant": HAVERSION,
"size": backup.size,
"date": backup.date,
"slug": backup.slug,
"name": backup.name,
},
metadata=BackupSyncMetadata(
homeassistant=HAVERSION,
size=backup.size,
date=backup.date,
slug=backup.slug,
name=backup.name,
),
)
for agent in self.sync_agents.values()
),
+3 -3
View File
@@ -1,7 +1,6 @@
"""Models for the backup integration."""
from dataclasses import asdict, dataclass
from typing import TypedDict
@dataclass()
@@ -18,8 +17,9 @@ class BaseBackup:
return asdict(self)
class BackupSyncMetadata(TypedDict):
"""Dictionary type for backup sync metadata."""
@dataclass()
class BackupSyncMetadata:
"""Backup sync metadata."""
date: str # The date the backup was created
slug: str # The slug of the backup
@@ -62,10 +62,10 @@ class KitchenSinkBackupSyncAgent(BackupSyncAgent):
self._uploads.append(
SyncedBackup(
id=uuid4().hex,
name=metadata["name"],
slug=metadata["slug"],
size=metadata["size"],
date=metadata["date"],
name=metadata.name,
slug=metadata.slug,
size=metadata.size,
date=metadata.date,
)
)
+15 -15
View File
@@ -10,7 +10,7 @@ import aiohttp
from multidict import CIMultiDict, CIMultiDictProxy
import pytest
from homeassistant.components.backup import BackupManager
from homeassistant.components.backup import BackupManager, BackupSyncMetadata
from homeassistant.components.backup.manager import (
BackupPlatformProtocol,
BackupProgress,
@@ -299,13 +299,13 @@ async def test_syncing_backup(
assert mocked_upload.call_count == 2
first_call = mocked_upload.call_args_list[0]
assert first_call[1]["path"] == backup.path
assert first_call[1]["metadata"] == {
"date": backup.date,
"homeassistant": "2025.1.0",
"name": backup.name,
"size": backup.size,
"slug": backup.slug,
}
assert first_call[1]["metadata"] == BackupSyncMetadata(
date=backup.date,
homeassistant="2025.1.0",
name=backup.name,
size=backup.size,
slug=backup.slug,
)
assert "Error during backup sync" not in caplog.text
@@ -361,13 +361,13 @@ async def test_syncing_backup_with_exception(
assert mocked_upload.call_count == 2
first_call = mocked_upload.call_args_list[0]
assert first_call[1]["path"] == backup.path
assert first_call[1]["metadata"] == {
"date": backup.date,
"homeassistant": "2025.1.0",
"name": backup.name,
"size": backup.size,
"slug": backup.slug,
}
assert first_call[1]["metadata"] == BackupSyncMetadata(
date=backup.date,
homeassistant="2025.1.0",
name=backup.name,
size=backup.size,
slug=backup.slug,
)
assert "Error during backup sync - Test exception" in caplog.text