Remove WS command backup/upload
This commit is contained in:
parent
f99b319048
commit
9a3ebabf88
3 changed files with 0 additions and 179 deletions
|
@ -22,7 +22,6 @@ def async_register_websocket_handlers(hass: HomeAssistant, with_hassio: bool) ->
|
||||||
if with_hassio:
|
if with_hassio:
|
||||||
websocket_api.async_register_command(hass, handle_backup_end)
|
websocket_api.async_register_command(hass, handle_backup_end)
|
||||||
websocket_api.async_register_command(hass, handle_backup_start)
|
websocket_api.async_register_command(hass, handle_backup_start)
|
||||||
websocket_api.async_register_command(hass, handle_backup_upload)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
websocket_api.async_register_command(hass, handle_details)
|
websocket_api.async_register_command(hass, handle_details)
|
||||||
|
@ -170,34 +169,6 @@ async def handle_backup_end(
|
||||||
connection.send_result(msg["id"])
|
connection.send_result(msg["id"])
|
||||||
|
|
||||||
|
|
||||||
@websocket_api.ws_require_user(only_supervisor=True)
|
|
||||||
@websocket_api.websocket_command(
|
|
||||||
{
|
|
||||||
vol.Required("type"): "backup/upload",
|
|
||||||
vol.Required("data"): {
|
|
||||||
vol.Required("slug"): str,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
@websocket_api.async_response
|
|
||||||
async def handle_backup_upload(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
connection: websocket_api.ActiveConnection,
|
|
||||||
msg: dict[str, Any],
|
|
||||||
) -> None:
|
|
||||||
"""Backup upload."""
|
|
||||||
LOGGER.debug("Backup upload notification")
|
|
||||||
data = msg["data"]
|
|
||||||
|
|
||||||
try:
|
|
||||||
await hass.data[DATA_MANAGER].async_upload_backup(slug=data["slug"])
|
|
||||||
except Exception as err: # noqa: BLE001
|
|
||||||
connection.send_error(msg["id"], "backup_upload_failed", str(err))
|
|
||||||
return
|
|
||||||
|
|
||||||
connection.send_result(msg["id"])
|
|
||||||
|
|
||||||
|
|
||||||
@websocket_api.require_admin
|
@websocket_api.require_admin
|
||||||
@websocket_api.websocket_command({vol.Required("type"): "backup/agents/info"})
|
@websocket_api.websocket_command({vol.Required("type"): "backup/agents/info"})
|
||||||
@websocket_api.async_response
|
@websocket_api.async_response
|
||||||
|
|
|
@ -249,80 +249,6 @@
|
||||||
'type': 'result',
|
'type': 'result',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_backup_upload[with_hassio-hass_access_token]
|
|
||||||
dict({
|
|
||||||
'error': dict({
|
|
||||||
'code': 'only_supervisor',
|
|
||||||
'message': 'Only allowed as Supervisor',
|
|
||||||
}),
|
|
||||||
'id': 1,
|
|
||||||
'success': False,
|
|
||||||
'type': 'result',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_backup_upload[with_hassio-hass_supervisor_access_token]
|
|
||||||
dict({
|
|
||||||
'id': 1,
|
|
||||||
'result': None,
|
|
||||||
'success': True,
|
|
||||||
'type': 'result',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_backup_upload[without_hassio-hass_access_token]
|
|
||||||
dict({
|
|
||||||
'error': dict({
|
|
||||||
'code': 'unknown_command',
|
|
||||||
'message': 'Unknown command.',
|
|
||||||
}),
|
|
||||||
'id': 1,
|
|
||||||
'success': False,
|
|
||||||
'type': 'result',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_backup_upload[without_hassio-hass_supervisor_access_token]
|
|
||||||
dict({
|
|
||||||
'error': dict({
|
|
||||||
'code': 'unknown_command',
|
|
||||||
'message': 'Unknown command.',
|
|
||||||
}),
|
|
||||||
'id': 1,
|
|
||||||
'success': False,
|
|
||||||
'type': 'result',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_backup_upload_exception[exception0]
|
|
||||||
dict({
|
|
||||||
'error': dict({
|
|
||||||
'code': 'backup_upload_failed',
|
|
||||||
'message': '',
|
|
||||||
}),
|
|
||||||
'id': 1,
|
|
||||||
'success': False,
|
|
||||||
'type': 'result',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_backup_upload_exception[exception1]
|
|
||||||
dict({
|
|
||||||
'error': dict({
|
|
||||||
'code': 'backup_upload_failed',
|
|
||||||
'message': 'Boom',
|
|
||||||
}),
|
|
||||||
'id': 1,
|
|
||||||
'success': False,
|
|
||||||
'type': 'result',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_backup_upload_exception[exception2]
|
|
||||||
dict({
|
|
||||||
'error': dict({
|
|
||||||
'code': 'backup_upload_failed',
|
|
||||||
'message': 'Boom',
|
|
||||||
}),
|
|
||||||
'id': 1,
|
|
||||||
'success': False,
|
|
||||||
'type': 'result',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_details[with_hassio-with_backup_content]
|
# name: test_details[with_hassio-with_backup_content]
|
||||||
dict({
|
dict({
|
||||||
'error': dict({
|
'error': dict({
|
||||||
|
|
|
@ -245,46 +245,6 @@ async def test_backup_start(
|
||||||
assert await client.receive_json() == snapshot
|
assert await client.receive_json() == snapshot
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"access_token_fixture_name",
|
|
||||||
["hass_access_token", "hass_supervisor_access_token"],
|
|
||||||
)
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
("with_hassio"),
|
|
||||||
[
|
|
||||||
pytest.param(True, id="with_hassio"),
|
|
||||||
pytest.param(False, id="without_hassio"),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
async def test_backup_upload(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
hass_ws_client: WebSocketGenerator,
|
|
||||||
snapshot: SnapshotAssertion,
|
|
||||||
sync_access_token_proxy: str,
|
|
||||||
*,
|
|
||||||
access_token_fixture_name: str,
|
|
||||||
with_hassio: bool,
|
|
||||||
) -> None:
|
|
||||||
"""Test backup upload from a WS command."""
|
|
||||||
await setup_backup_integration(hass, with_hassio=with_hassio)
|
|
||||||
|
|
||||||
client = await hass_ws_client(hass, sync_access_token_proxy)
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
|
|
||||||
with patch(
|
|
||||||
"homeassistant.components.backup.manager.BackupManager.async_upload_backup",
|
|
||||||
):
|
|
||||||
await client.send_json_auto_id(
|
|
||||||
{
|
|
||||||
"type": "backup/upload",
|
|
||||||
"data": {
|
|
||||||
"slug": "abc123",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
assert await client.receive_json() == snapshot
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"exception",
|
"exception",
|
||||||
[
|
[
|
||||||
|
@ -314,42 +274,6 @@ async def test_backup_end_exception(
|
||||||
assert await client.receive_json() == snapshot
|
assert await client.receive_json() == snapshot
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"exception",
|
|
||||||
[
|
|
||||||
TimeoutError(),
|
|
||||||
HomeAssistantError("Boom"),
|
|
||||||
Exception("Boom"),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
async def test_backup_upload_exception(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
hass_ws_client: WebSocketGenerator,
|
|
||||||
snapshot: SnapshotAssertion,
|
|
||||||
hass_supervisor_access_token: str,
|
|
||||||
exception: Exception,
|
|
||||||
) -> None:
|
|
||||||
"""Test exception handling while running backup upload from a WS command."""
|
|
||||||
await setup_backup_integration(hass, with_hassio=True)
|
|
||||||
|
|
||||||
client = await hass_ws_client(hass, hass_supervisor_access_token)
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
|
|
||||||
with patch(
|
|
||||||
"homeassistant.components.backup.manager.BackupManager.async_upload_backup",
|
|
||||||
side_effect=exception,
|
|
||||||
):
|
|
||||||
await client.send_json_auto_id(
|
|
||||||
{
|
|
||||||
"type": "backup/upload",
|
|
||||||
"data": {
|
|
||||||
"slug": "abc123",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
assert await client.receive_json() == snapshot
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"exception",
|
"exception",
|
||||||
[
|
[
|
||||||
|
|
Loading…
Add table
Reference in a new issue