From 441bca5bdaa2f9afcd970e7cb1aa0b75ade32c1f Mon Sep 17 00:00:00 2001 From: Simone Chemelli Date: Wed, 30 Apr 2025 12:26:20 +0300 Subject: [PATCH] Use CONF_PIN in SamsungTv config flow (#143621) * Use CONF_PIN in SamsunTv config flow * Adjust tests --------- Co-authored-by: epenet <6771947+epenet@users.noreply.github.com> --- homeassistant/components/samsungtv/config_flow.py | 9 +++++---- tests/components/samsungtv/test_config_flow.py | 13 +++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/samsungtv/config_flow.py b/homeassistant/components/samsungtv/config_flow.py index 3f34520e87a..74915c9251b 100644 --- a/homeassistant/components/samsungtv/config_flow.py +++ b/homeassistant/components/samsungtv/config_flow.py @@ -24,6 +24,7 @@ from homeassistant.const import ( CONF_METHOD, CONF_MODEL, CONF_NAME, + CONF_PIN, CONF_PORT, CONF_TOKEN, ) @@ -314,7 +315,7 @@ class SamsungTVConfigFlow(ConfigFlow, domain=DOMAIN): if user_input is not None: if ( - (pin := user_input.get("pin")) + (pin := user_input.get(CONF_PIN)) and (token := await self._authenticator.try_pin(pin)) and (session_id := await self._authenticator.get_session_id_and_close()) ): @@ -333,7 +334,7 @@ class SamsungTVConfigFlow(ConfigFlow, domain=DOMAIN): step_id="encrypted_pairing", errors=errors, description_placeholders={"device": self._title}, - data_schema=vol.Schema({vol.Required("pin"): str}), + data_schema=vol.Schema({vol.Required(CONF_PIN): str}), ) @callback @@ -596,7 +597,7 @@ class SamsungTVConfigFlow(ConfigFlow, domain=DOMAIN): if user_input is not None: if ( - (pin := user_input.get("pin")) + (pin := user_input.get(CONF_PIN)) and (token := await self._authenticator.try_pin(pin)) and (session_id := await self._authenticator.get_session_id_and_close()) ): @@ -615,5 +616,5 @@ class SamsungTVConfigFlow(ConfigFlow, domain=DOMAIN): step_id="reauth_confirm_encrypted", errors=errors, description_placeholders={"device": self._title}, - data_schema=vol.Schema({vol.Required("pin"): str}), + data_schema=vol.Schema({vol.Required(CONF_PIN): str}), ) diff --git a/tests/components/samsungtv/test_config_flow.py b/tests/components/samsungtv/test_config_flow.py index 576a5f6d534..cf9390241d5 100644 --- a/tests/components/samsungtv/test_config_flow.py +++ b/tests/components/samsungtv/test_config_flow.py @@ -41,6 +41,7 @@ from homeassistant.const import ( CONF_METHOD, CONF_MODEL, CONF_NAME, + CONF_PIN, CONF_PORT, CONF_TOKEN, ) @@ -324,13 +325,13 @@ async def test_user_encrypted_websocket( assert result2["step_id"] == "encrypted_pairing" result3 = await hass.config_entries.flow.async_configure( - result2["flow_id"], user_input={"pin": "invalid"} + result2["flow_id"], user_input={CONF_PIN: "invalid"} ) assert result3["step_id"] == "encrypted_pairing" assert result3["errors"] == {"base": "invalid_pin"} result4 = await hass.config_entries.flow.async_configure( - result3["flow_id"], user_input={"pin": "1234"} + result3["flow_id"], user_input={CONF_PIN: "1234"} ) assert result4["type"] is FlowResultType.CREATE_ENTRY @@ -728,13 +729,13 @@ async def test_ssdp_encrypted_websocket_success_populates_mac_address_and_ssdp_l assert result2["step_id"] == "encrypted_pairing" result3 = await hass.config_entries.flow.async_configure( - result2["flow_id"], user_input={"pin": "invalid"} + result2["flow_id"], user_input={CONF_PIN: "invalid"} ) assert result3["step_id"] == "encrypted_pairing" assert result3["errors"] == {"base": "invalid_pin"} result4 = await hass.config_entries.flow.async_configure( - result3["flow_id"], user_input={"pin": "1234"} + result3["flow_id"], user_input={CONF_PIN: "1234"} ) assert result4["type"] is FlowResultType.CREATE_ENTRY @@ -1947,14 +1948,14 @@ async def test_form_reauth_encrypted(hass: HomeAssistant) -> None: # Invalid PIN result = await hass.config_entries.flow.async_configure( - result["flow_id"], user_input={"pin": "invalid"} + result["flow_id"], user_input={CONF_PIN: "invalid"} ) assert result["type"] is FlowResultType.FORM assert result["step_id"] == "reauth_confirm_encrypted" # Valid PIN result = await hass.config_entries.flow.async_configure( - result["flow_id"], user_input={"pin": "1234"} + result["flow_id"], user_input={CONF_PIN: "1234"} ) await hass.async_block_till_done() assert result["type"] is FlowResultType.ABORT