diff --git a/homeassistant/components/backup/websocket.py b/homeassistant/components/backup/websocket.py index e2164a2dbca..984e7a12b0d 100644 --- a/homeassistant/components/backup/websocket.py +++ b/homeassistant/components/backup/websocket.py @@ -22,7 +22,6 @@ def async_register_websocket_handlers(hass: HomeAssistant, with_hassio: bool) -> if with_hassio: 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_upload) return websocket_api.async_register_command(hass, handle_details) @@ -190,34 +189,6 @@ async def handle_backup_end( 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.websocket_command({vol.Required("type"): "backup/agents/info"}) @websocket_api.async_response diff --git a/tests/components/backup/snapshots/test_websocket.ambr b/tests/components/backup/snapshots/test_websocket.ambr index 2adaafc5060..9fefef2e018 100644 --- a/tests/components/backup/snapshots/test_websocket.ambr +++ b/tests/components/backup/snapshots/test_websocket.ambr @@ -251,80 +251,6 @@ '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] dict({ 'error': dict({ diff --git a/tests/components/backup/test_websocket.py b/tests/components/backup/test_websocket.py index bc8b126aa27..958191a7eb6 100644 --- a/tests/components/backup/test_websocket.py +++ b/tests/components/backup/test_websocket.py @@ -311,46 +311,6 @@ async def test_backup_start( 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( "exception", [ @@ -380,42 +340,6 @@ async def test_backup_end_exception( 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( "exception", [ diff --git a/tests/components/kitchen_sink/test_backup.py b/tests/components/kitchen_sink/test_backup.py index 1866a1e2e19..f60fdbba0ca 100644 --- a/tests/components/kitchen_sink/test_backup.py +++ b/tests/components/kitchen_sink/test_backup.py @@ -104,6 +104,7 @@ async def test_agents_download( assert f"Downloading backup {backup_id} to {path}" in caplog.text +@pytest.mark.xfail(reason="Disabled until /api/backup/upload accepts a list of agents") async def test_agents_upload( hass: HomeAssistant, hass_ws_client: WebSocketGenerator,