From 85d9ec36b30aa2aedecd8571c7ed734d0b0a9b05 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 14 Apr 2024 22:30:45 -0500 Subject: [PATCH] allow extra --- homeassistant/components/websocket_api/connection.py | 7 +------ tests/components/websocket_api/test_decorators.py | 10 ++++------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/homeassistant/components/websocket_api/connection.py b/homeassistant/components/websocket_api/connection.py index b52200bf346..14ceac60e59 100644 --- a/homeassistant/components/websocket_api/connection.py +++ b/homeassistant/components/websocket_api/connection.py @@ -221,12 +221,7 @@ class ActiveConnection: handler, schema = handler_schema try: - if schema is False: - if len(msg) > 2: - raise vol.Invalid("Message has unexpected keys") - handler(self.hass, self, msg) - else: - handler(self.hass, self, schema(msg)) + handler(self.hass, self, msg if schema is False else schema(msg)) except Exception as err: # pylint: disable=broad-except self.async_handle_exception(msg, err) diff --git a/tests/components/websocket_api/test_decorators.py b/tests/components/websocket_api/test_decorators.py index 0f513387218..2ae85f3ed5c 100644 --- a/tests/components/websocket_api/test_decorators.py +++ b/tests/components/websocket_api/test_decorators.py @@ -130,14 +130,12 @@ async def test_async_response_request_context( } ) + # Extra keys in message are allowed and ignored + # to match the default of ALLOW_EXTRA msg = await websocket_client.receive_json() assert msg["id"] == 10 - assert not msg["success"] - assert msg["error"]["code"] == "invalid_format" - assert msg["error"]["message"] == ( - "Message has unexpected keys. " - "Got {'id': 10, 'type': 'test-get-request', 'not_valid': 'dog'}" - ) + assert msg["success"] + assert msg["result"] == "/api/websocket" async def test_supervisor_only(hass: HomeAssistant, websocket_client) -> None: