mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 20:27:08 +00:00
Introduce unique_id
to BackupAgent (#136651)
* add unique_id to BackupAgent * adjust tests
This commit is contained in:
parent
91ff31a3be
commit
8300fd2de8
@ -30,11 +30,12 @@ class BackupAgent(abc.ABC):
|
|||||||
|
|
||||||
domain: str
|
domain: str
|
||||||
name: str
|
name: str
|
||||||
|
unique_id: str
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def agent_id(self) -> str:
|
def agent_id(self) -> str:
|
||||||
"""Return the agent_id."""
|
"""Return the agent_id."""
|
||||||
return f"{self.domain}.{self.name}"
|
return f"{self.domain}.{self.unique_id}"
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
async def async_download_backup(
|
async def async_download_backup(
|
||||||
|
@ -32,6 +32,7 @@ class CoreLocalBackupAgent(LocalBackupAgent):
|
|||||||
|
|
||||||
domain = DOMAIN
|
domain = DOMAIN
|
||||||
name = "local"
|
name = "local"
|
||||||
|
unique_id = "local"
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant) -> None:
|
def __init__(self, hass: HomeAssistant) -> None:
|
||||||
"""Initialize the backup agent."""
|
"""Initialize the backup agent."""
|
||||||
|
@ -306,7 +306,10 @@ async def backup_agents_info(
|
|||||||
connection.send_result(
|
connection.send_result(
|
||||||
msg["id"],
|
msg["id"],
|
||||||
{
|
{
|
||||||
"agents": [{"agent_id": agent_id} for agent_id in manager.backup_agents],
|
"agents": [
|
||||||
|
{"agent_id": agent.agent_id, "name": agent.name}
|
||||||
|
for agent in manager.backup_agents.values()
|
||||||
|
],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -82,8 +82,7 @@ def async_register_backup_agents_listener(
|
|||||||
class CloudBackupAgent(BackupAgent):
|
class CloudBackupAgent(BackupAgent):
|
||||||
"""Cloud backup agent."""
|
"""Cloud backup agent."""
|
||||||
|
|
||||||
domain = DOMAIN
|
domain = name = unique_id = DOMAIN
|
||||||
name = DOMAIN
|
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, cloud: Cloud[CloudClient]) -> None:
|
def __init__(self, hass: HomeAssistant, cloud: Cloud[CloudClient]) -> None:
|
||||||
"""Initialize the cloud backup sync agent."""
|
"""Initialize the cloud backup sync agent."""
|
||||||
|
@ -133,7 +133,7 @@ class SupervisorBackupAgent(BackupAgent):
|
|||||||
self._hass = hass
|
self._hass = hass
|
||||||
self._backup_dir = Path("/backups")
|
self._backup_dir = Path("/backups")
|
||||||
self._client = get_supervisor_client(hass)
|
self._client = get_supervisor_client(hass)
|
||||||
self.name = name
|
self.name = self.unique_id = name
|
||||||
self.location = location
|
self.location = location
|
||||||
|
|
||||||
async def async_download_backup(
|
async def async_download_backup(
|
||||||
|
@ -51,7 +51,7 @@ class KitchenSinkBackupAgent(BackupAgent):
|
|||||||
def __init__(self, name: str) -> None:
|
def __init__(self, name: str) -> None:
|
||||||
"""Initialize the kitchen sink backup sync agent."""
|
"""Initialize the kitchen sink backup sync agent."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.name = name
|
self.name = self.unique_id = name
|
||||||
self._uploads = [
|
self._uploads = [
|
||||||
AgentBackup(
|
AgentBackup(
|
||||||
addons=[AddonInfo(name="Test", slug="test", version="1.0.0")],
|
addons=[AddonInfo(name="Test", slug="test", version="1.0.0")],
|
||||||
|
@ -39,7 +39,7 @@ async def async_get_backup_agents(
|
|||||||
return []
|
return []
|
||||||
syno_datas: dict[str, SynologyDSMData] = hass.data[DOMAIN]
|
syno_datas: dict[str, SynologyDSMData] = hass.data[DOMAIN]
|
||||||
return [
|
return [
|
||||||
SynologyDSMBackupAgent(hass, entry)
|
SynologyDSMBackupAgent(hass, entry, entry.unique_id)
|
||||||
for entry in entries
|
for entry in entries
|
||||||
if entry.unique_id is not None
|
if entry.unique_id is not None
|
||||||
and (syno_data := syno_datas.get(entry.unique_id))
|
and (syno_data := syno_datas.get(entry.unique_id))
|
||||||
@ -76,11 +76,12 @@ class SynologyDSMBackupAgent(BackupAgent):
|
|||||||
|
|
||||||
domain = DOMAIN
|
domain = DOMAIN
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None:
|
def __init__(self, hass: HomeAssistant, entry: ConfigEntry, unique_id: str) -> None:
|
||||||
"""Initialize the Synology DSM backup agent."""
|
"""Initialize the Synology DSM backup agent."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
LOGGER.debug("Initializing Synology DSM backup agent for %s", entry.unique_id)
|
LOGGER.debug("Initializing Synology DSM backup agent for %s", entry.unique_id)
|
||||||
self.name = entry.title
|
self.name = entry.title
|
||||||
|
self.unique_id = unique_id
|
||||||
self.path = (
|
self.path = (
|
||||||
f"{entry.options[CONF_BACKUP_SHARE]}/{entry.options[CONF_BACKUP_PATH]}"
|
f"{entry.options[CONF_BACKUP_SHARE]}/{entry.options[CONF_BACKUP_PATH]}"
|
||||||
)
|
)
|
||||||
|
@ -64,6 +64,7 @@ class BackupAgentTest(BackupAgent):
|
|||||||
def __init__(self, name: str, backups: list[AgentBackup] | None = None) -> None:
|
def __init__(self, name: str, backups: list[AgentBackup] | None = None) -> None:
|
||||||
"""Initialize the backup agent."""
|
"""Initialize the backup agent."""
|
||||||
self.name = name
|
self.name = name
|
||||||
|
self.unique_id = name
|
||||||
if backups is None:
|
if backups is None:
|
||||||
backups = [
|
backups = [
|
||||||
AgentBackup(
|
AgentBackup(
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
'agents': list([
|
'agents': list([
|
||||||
dict({
|
dict({
|
||||||
'agent_id': 'backup.local',
|
'agent_id': 'backup.local',
|
||||||
|
'name': 'local',
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
@ -97,6 +98,7 @@
|
|||||||
'agents': list([
|
'agents': list([
|
||||||
dict({
|
dict({
|
||||||
'agent_id': 'backup.local',
|
'agent_id': 'backup.local',
|
||||||
|
'name': 'local',
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
@ -128,6 +130,7 @@
|
|||||||
'agents': list([
|
'agents': list([
|
||||||
dict({
|
dict({
|
||||||
'agent_id': 'backup.local',
|
'agent_id': 'backup.local',
|
||||||
|
'name': 'local',
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
@ -159,6 +162,7 @@
|
|||||||
'agents': list([
|
'agents': list([
|
||||||
dict({
|
dict({
|
||||||
'agent_id': 'backup.local',
|
'agent_id': 'backup.local',
|
||||||
|
'name': 'local',
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
@ -190,6 +194,7 @@
|
|||||||
'agents': list([
|
'agents': list([
|
||||||
dict({
|
dict({
|
||||||
'agent_id': 'backup.local',
|
'agent_id': 'backup.local',
|
||||||
|
'name': 'local',
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
|
@ -17,9 +17,11 @@
|
|||||||
'agents': list([
|
'agents': list([
|
||||||
dict({
|
dict({
|
||||||
'agent_id': 'backup.local',
|
'agent_id': 'backup.local',
|
||||||
|
'name': 'local',
|
||||||
}),
|
}),
|
||||||
dict({
|
dict({
|
||||||
'agent_id': 'domain.test',
|
'agent_id': 'test.test',
|
||||||
|
'name': 'test',
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
|
@ -1203,8 +1203,8 @@ async def test_loading_platform_with_listener(
|
|||||||
await ws_client.send_json_auto_id({"type": "backup/agents/info"})
|
await ws_client.send_json_auto_id({"type": "backup/agents/info"})
|
||||||
resp = await ws_client.receive_json()
|
resp = await ws_client.receive_json()
|
||||||
assert resp["result"]["agents"] == [
|
assert resp["result"]["agents"] == [
|
||||||
{"agent_id": "backup.local"},
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
{"agent_id": "test.remote1"},
|
{"agent_id": "test.remote1", "name": "remote1"},
|
||||||
]
|
]
|
||||||
assert len(manager.local_backup_agents) == num_local_agents
|
assert len(manager.local_backup_agents) == num_local_agents
|
||||||
|
|
||||||
@ -1220,8 +1220,8 @@ async def test_loading_platform_with_listener(
|
|||||||
await ws_client.send_json_auto_id({"type": "backup/agents/info"})
|
await ws_client.send_json_auto_id({"type": "backup/agents/info"})
|
||||||
resp = await ws_client.receive_json()
|
resp = await ws_client.receive_json()
|
||||||
assert resp["result"]["agents"] == [
|
assert resp["result"]["agents"] == [
|
||||||
{"agent_id": "backup.local"},
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
{"agent_id": "test.remote2"},
|
{"agent_id": "test.remote2", "name": "remote2"},
|
||||||
]
|
]
|
||||||
assert len(manager.local_backup_agents) == num_local_agents
|
assert len(manager.local_backup_agents) == num_local_agents
|
||||||
|
|
||||||
|
@ -146,7 +146,10 @@ async def test_agents_info(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [{"agent_id": "backup.local"}, {"agent_id": "cloud.cloud"}],
|
"agents": [
|
||||||
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
|
{"agent_id": "cloud.cloud", "name": "cloud"},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ from homeassistant.components.backup import (
|
|||||||
BackupAgentPlatformProtocol,
|
BackupAgentPlatformProtocol,
|
||||||
Folder,
|
Folder,
|
||||||
)
|
)
|
||||||
|
from homeassistant.components.hassio import DOMAIN
|
||||||
from homeassistant.components.hassio.backup import LOCATION_CLOUD_BACKUP
|
from homeassistant.components.hassio.backup import LOCATION_CLOUD_BACKUP
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.setup import async_setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
@ -252,11 +253,11 @@ async def setup_integration(
|
|||||||
class BackupAgentTest(BackupAgent):
|
class BackupAgentTest(BackupAgent):
|
||||||
"""Test backup agent."""
|
"""Test backup agent."""
|
||||||
|
|
||||||
domain = "test"
|
def __init__(self, name: str, domain: str = "test") -> None:
|
||||||
|
|
||||||
def __init__(self, name: str) -> None:
|
|
||||||
"""Initialize the backup agent."""
|
"""Initialize the backup agent."""
|
||||||
|
self.domain = domain
|
||||||
self.name = name
|
self.name = name
|
||||||
|
self.unique_id = name
|
||||||
|
|
||||||
async def async_download_backup(
|
async def async_download_backup(
|
||||||
self, backup_id: str, **kwargs: Any
|
self, backup_id: str, **kwargs: Any
|
||||||
@ -304,7 +305,10 @@ async def _setup_backup_platform(
|
|||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("mounts", "expected_agents"),
|
("mounts", "expected_agents"),
|
||||||
[
|
[
|
||||||
(MountsInfo(default_backup_mount=None, mounts=[]), ["hassio.local"]),
|
(
|
||||||
|
MountsInfo(default_backup_mount=None, mounts=[]),
|
||||||
|
[BackupAgentTest("local", DOMAIN)],
|
||||||
|
),
|
||||||
(
|
(
|
||||||
MountsInfo(
|
MountsInfo(
|
||||||
default_backup_mount=None,
|
default_backup_mount=None,
|
||||||
@ -321,7 +325,7 @@ async def _setup_backup_platform(
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
["hassio.local", "hassio.test"],
|
[BackupAgentTest("local", DOMAIN), BackupAgentTest("test", DOMAIN)],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
MountsInfo(
|
MountsInfo(
|
||||||
@ -339,7 +343,7 @@ async def _setup_backup_platform(
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
["hassio.local"],
|
[BackupAgentTest("local", DOMAIN)],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@ -348,7 +352,7 @@ async def test_agent_info(
|
|||||||
hass_ws_client: WebSocketGenerator,
|
hass_ws_client: WebSocketGenerator,
|
||||||
supervisor_client: AsyncMock,
|
supervisor_client: AsyncMock,
|
||||||
mounts: MountsInfo,
|
mounts: MountsInfo,
|
||||||
expected_agents: list[str],
|
expected_agents: list[BackupAgent],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test backup agent info."""
|
"""Test backup agent info."""
|
||||||
client = await hass_ws_client(hass)
|
client = await hass_ws_client(hass)
|
||||||
@ -361,7 +365,10 @@ async def test_agent_info(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [{"agent_id": agent_id} for agent_id in expected_agents],
|
"agents": [
|
||||||
|
{"agent_id": agent.agent_id, "name": agent.name}
|
||||||
|
for agent in expected_agents
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,7 +55,10 @@ async def test_agents_info(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [{"agent_id": "backup.local"}, {"agent_id": "kitchen_sink.syncer"}],
|
"agents": [
|
||||||
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
|
{"agent_id": "kitchen_sink.syncer", "name": "syncer"},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
config_entry = hass.config_entries.async_entries(DOMAIN)[0]
|
config_entry = hass.config_entries.async_entries(DOMAIN)[0]
|
||||||
@ -66,7 +69,9 @@ async def test_agents_info(
|
|||||||
response = await client.receive_json()
|
response = await client.receive_json()
|
||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {"agents": [{"agent_id": "backup.local"}]}
|
assert response["result"] == {
|
||||||
|
"agents": [{"agent_id": "backup.local", "name": "local"}]
|
||||||
|
}
|
||||||
|
|
||||||
await hass.config_entries.async_setup(config_entry.entry_id)
|
await hass.config_entries.async_setup(config_entry.entry_id)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
@ -76,7 +81,10 @@ async def test_agents_info(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [{"agent_id": "backup.local"}, {"agent_id": "kitchen_sink.syncer"}],
|
"agents": [
|
||||||
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
|
{"agent_id": "kitchen_sink.syncer", "name": "syncer"},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -208,8 +208,8 @@ async def test_agents_info(
|
|||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [
|
"agents": [
|
||||||
{"agent_id": "synology_dsm.Mock Title"},
|
{"agent_id": "synology_dsm.mocked_syno_dsm_entry", "name": "Mock Title"},
|
||||||
{"agent_id": "backup.local"},
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,7 +231,7 @@ async def test_agents_not_loaded(
|
|||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [
|
"agents": [
|
||||||
{"agent_id": "backup.local"},
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,8 +251,8 @@ async def test_agents_on_unload(
|
|||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [
|
"agents": [
|
||||||
{"agent_id": "synology_dsm.Mock Title"},
|
{"agent_id": "synology_dsm.mocked_syno_dsm_entry", "name": "Mock Title"},
|
||||||
{"agent_id": "backup.local"},
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,7 +269,7 @@ async def test_agents_on_unload(
|
|||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agents": [
|
"agents": [
|
||||||
{"agent_id": "backup.local"},
|
{"agent_id": "backup.local", "name": "local"},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,7 +299,7 @@ async def test_agents_list_backups(
|
|||||||
"name": "Automatic backup 2025.2.0.dev0",
|
"name": "Automatic backup 2025.2.0.dev0",
|
||||||
"protected": True,
|
"protected": True,
|
||||||
"size": 13916160,
|
"size": 13916160,
|
||||||
"agent_ids": ["synology_dsm.Mock Title"],
|
"agent_ids": ["synology_dsm.mocked_syno_dsm_entry"],
|
||||||
"failed_agent_ids": [],
|
"failed_agent_ids": [],
|
||||||
"with_automatic_settings": None,
|
"with_automatic_settings": None,
|
||||||
}
|
}
|
||||||
@ -323,7 +323,9 @@ async def test_agents_list_backups_error(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agent_errors": {"synology_dsm.Mock Title": "Failed to list backups"},
|
"agent_errors": {
|
||||||
|
"synology_dsm.mocked_syno_dsm_entry": "Failed to list backups"
|
||||||
|
},
|
||||||
"backups": [],
|
"backups": [],
|
||||||
"last_attempted_automatic_backup": None,
|
"last_attempted_automatic_backup": None,
|
||||||
"last_completed_automatic_backup": None,
|
"last_completed_automatic_backup": None,
|
||||||
@ -362,7 +364,7 @@ async def test_agents_list_backups_disabled_filestation(
|
|||||||
"name": "Automatic backup 2025.2.0.dev0",
|
"name": "Automatic backup 2025.2.0.dev0",
|
||||||
"protected": True,
|
"protected": True,
|
||||||
"size": 13916160,
|
"size": 13916160,
|
||||||
"agent_ids": ["synology_dsm.Mock Title"],
|
"agent_ids": ["synology_dsm.mocked_syno_dsm_entry"],
|
||||||
"failed_agent_ids": [],
|
"failed_agent_ids": [],
|
||||||
"with_automatic_settings": None,
|
"with_automatic_settings": None,
|
||||||
},
|
},
|
||||||
@ -429,7 +431,9 @@ async def test_agents_get_backup_error(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agent_errors": {"synology_dsm.Mock Title": "Failed to list backups"},
|
"agent_errors": {
|
||||||
|
"synology_dsm.mocked_syno_dsm_entry": "Failed to list backups"
|
||||||
|
},
|
||||||
"backup": None,
|
"backup": None,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -462,7 +466,7 @@ async def test_agents_download(
|
|||||||
backup_id = "abcd12ef"
|
backup_id = "abcd12ef"
|
||||||
|
|
||||||
resp = await client.get(
|
resp = await client.get(
|
||||||
f"/api/backup/download/{backup_id}?agent_id=synology_dsm.Mock Title"
|
f"/api/backup/download/{backup_id}?agent_id=synology_dsm.mocked_syno_dsm_entry"
|
||||||
)
|
)
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert await resp.content.read() == b"backup data"
|
assert await resp.content.read() == b"backup data"
|
||||||
@ -482,7 +486,7 @@ async def test_agents_download_not_existing(
|
|||||||
)
|
)
|
||||||
|
|
||||||
resp = await client.get(
|
resp = await client.get(
|
||||||
f"/api/backup/download/{backup_id}?agent_id=synology_dsm.Mock Title"
|
f"/api/backup/download/{backup_id}?agent_id=synology_dsm.mocked_syno_dsm_entry"
|
||||||
)
|
)
|
||||||
assert resp.reason == "Internal Server Error"
|
assert resp.reason == "Internal Server Error"
|
||||||
assert resp.status == 500
|
assert resp.status == 500
|
||||||
@ -524,7 +528,7 @@ async def test_agents_upload(
|
|||||||
mocked_open.return_value.read = Mock(side_effect=[b"test", b""])
|
mocked_open.return_value.read = Mock(side_effect=[b"test", b""])
|
||||||
fetch_backup.return_value = test_backup
|
fetch_backup.return_value = test_backup
|
||||||
resp = await client.post(
|
resp = await client.post(
|
||||||
"/api/backup/upload?agent_id=synology_dsm.Mock Title",
|
"/api/backup/upload?agent_id=synology_dsm.mocked_syno_dsm_entry",
|
||||||
data={"file": StringIO("test")},
|
data={"file": StringIO("test")},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -578,7 +582,7 @@ async def test_agents_upload_error(
|
|||||||
SynologyDSMAPIErrorException("api", "500", "error")
|
SynologyDSMAPIErrorException("api", "500", "error")
|
||||||
)
|
)
|
||||||
resp = await client.post(
|
resp = await client.post(
|
||||||
"/api/backup/upload?agent_id=synology_dsm.Mock Title",
|
"/api/backup/upload?agent_id=synology_dsm.mocked_syno_dsm_entry",
|
||||||
data={"file": StringIO("test")},
|
data={"file": StringIO("test")},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -609,7 +613,7 @@ async def test_agents_upload_error(
|
|||||||
]
|
]
|
||||||
|
|
||||||
resp = await client.post(
|
resp = await client.post(
|
||||||
"/api/backup/upload?agent_id=synology_dsm.Mock Title",
|
"/api/backup/upload?agent_id=synology_dsm.mocked_syno_dsm_entry",
|
||||||
data={"file": StringIO("test")},
|
data={"file": StringIO("test")},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -674,7 +678,9 @@ async def test_agents_delete_not_existing(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agent_errors": {"synology_dsm.Mock Title": "Failed to delete the backup"}
|
"agent_errors": {
|
||||||
|
"synology_dsm.mocked_syno_dsm_entry": "Failed to delete the backup"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -701,7 +707,9 @@ async def test_agents_delete_error(
|
|||||||
|
|
||||||
assert response["success"]
|
assert response["success"]
|
||||||
assert response["result"] == {
|
assert response["result"] == {
|
||||||
"agent_errors": {"synology_dsm.Mock Title": "Failed to delete the backup"}
|
"agent_errors": {
|
||||||
|
"synology_dsm.mocked_syno_dsm_entry": "Failed to delete the backup"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mock: AsyncMock = setup_dsm_with_filestation.file.delete_file
|
mock: AsyncMock = setup_dsm_with_filestation.file.delete_file
|
||||||
assert len(mock.mock_calls) == 1
|
assert len(mock.mock_calls) == 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user