From 12e7ea3a396740d5cceebe677e55d166ba920169 Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Thu, 22 Dec 2022 11:12:17 -0800 Subject: [PATCH] Strip whitespace from application credentials (#84461) fixes undefined --- .../application_credentials/__init__.py | 4 +-- .../application_credentials/test_init.py | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/application_credentials/__init__.py b/homeassistant/components/application_credentials/__init__.py index 38c14de4d8c..33521b3d066 100644 --- a/homeassistant/components/application_credentials/__init__.py +++ b/homeassistant/components/application_credentials/__init__.py @@ -50,8 +50,8 @@ DEFAULT_IMPORT_NAME = "Import from configuration.yaml" CREATE_FIELDS = { vol.Required(CONF_DOMAIN): cv.string, - vol.Required(CONF_CLIENT_ID): cv.string, - vol.Required(CONF_CLIENT_SECRET): cv.string, + vol.Required(CONF_CLIENT_ID): vol.All(cv.string, vol.Strip), + vol.Required(CONF_CLIENT_SECRET): vol.All(cv.string, vol.Strip), vol.Optional(CONF_AUTH_DOMAIN): cv.string, vol.Optional(CONF_NAME): cv.string, } diff --git a/tests/components/application_credentials/test_init.py b/tests/components/application_credentials/test_init.py index 04112e2a00d..7685787d4d9 100644 --- a/tests/components/application_credentials/test_init.py +++ b/tests/components/application_credentials/test_init.py @@ -795,3 +795,32 @@ async def test_remove_config_entry_without_app_credentials( "config_entry", {"config_entry_id": entries[0].entry_id} ) assert "application_credential_id" not in result + + +async def test_websocket_create_strips_whitespace(ws_client: ClientFixture): + """Test websocket create command with whitespace in the credentials.""" + client = await ws_client() + result = await client.cmd_result( + "create", + { + CONF_DOMAIN: TEST_DOMAIN, + CONF_CLIENT_ID: f" {CLIENT_ID} ", + CONF_CLIENT_SECRET: f" {CLIENT_SECRET} ", + }, + ) + assert result == { + CONF_DOMAIN: TEST_DOMAIN, + CONF_CLIENT_ID: CLIENT_ID, + CONF_CLIENT_SECRET: CLIENT_SECRET, + "id": ID, + } + + result = await client.cmd_result("list") + assert result == [ + { + CONF_DOMAIN: TEST_DOMAIN, + CONF_CLIENT_ID: CLIENT_ID, + CONF_CLIENT_SECRET: CLIENT_SECRET, + "id": ID, + } + ]