mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Ensure samsungtv reloads after reauth (#51714)
* Ensure samsungtv reloads after reauth - Fixes a case of I/O in the event loop * Ensure config entry is reloaded
This commit is contained in:
parent
6e0aca49af
commit
ab490bc769
@ -291,13 +291,14 @@ class SamsungTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
bridge = SamsungTVBridge.get_bridge(
|
bridge = SamsungTVBridge.get_bridge(
|
||||||
self._reauth_entry.data[CONF_METHOD], self._reauth_entry.data[CONF_HOST]
|
self._reauth_entry.data[CONF_METHOD], self._reauth_entry.data[CONF_HOST]
|
||||||
)
|
)
|
||||||
result = bridge.try_connect()
|
result = await self.hass.async_add_executor_job(bridge.try_connect)
|
||||||
if result == RESULT_SUCCESS:
|
if result == RESULT_SUCCESS:
|
||||||
new_data = dict(self._reauth_entry.data)
|
new_data = dict(self._reauth_entry.data)
|
||||||
new_data[CONF_TOKEN] = bridge.token
|
new_data[CONF_TOKEN] = bridge.token
|
||||||
self.hass.config_entries.async_update_entry(
|
self.hass.config_entries.async_update_entry(
|
||||||
self._reauth_entry, data=new_data
|
self._reauth_entry, data=new_data
|
||||||
)
|
)
|
||||||
|
await self.hass.config_entries.async_reload(self._reauth_entry.entry_id)
|
||||||
return self.async_abort(reason="reauth_successful")
|
return self.async_abort(reason="reauth_successful")
|
||||||
if result not in (RESULT_AUTH_MISSING, RESULT_CANNOT_CONNECT):
|
if result not in (RESULT_AUTH_MISSING, RESULT_CANNOT_CONNECT):
|
||||||
return self.async_abort(reason=result)
|
return self.async_abort(reason=result)
|
||||||
|
@ -905,6 +905,8 @@ async def test_form_reauth_websocket(hass, remotews: Mock):
|
|||||||
"""Test reauthenticate websocket."""
|
"""Test reauthenticate websocket."""
|
||||||
entry = MockConfigEntry(domain=DOMAIN, data=MOCK_WS_ENTRY)
|
entry = MockConfigEntry(domain=DOMAIN, data=MOCK_WS_ENTRY)
|
||||||
entry.add_to_hass(hass)
|
entry.add_to_hass(hass)
|
||||||
|
assert entry.state == config_entries.ConfigEntryState.NOT_LOADED
|
||||||
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
context={"entry_id": entry.entry_id, "source": config_entries.SOURCE_REAUTH},
|
context={"entry_id": entry.entry_id, "source": config_entries.SOURCE_REAUTH},
|
||||||
@ -920,6 +922,7 @@ async def test_form_reauth_websocket(hass, remotews: Mock):
|
|||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert result2["type"] == "abort"
|
assert result2["type"] == "abort"
|
||||||
assert result2["reason"] == "reauth_successful"
|
assert result2["reason"] == "reauth_successful"
|
||||||
|
assert entry.state == config_entries.ConfigEntryState.LOADED
|
||||||
|
|
||||||
|
|
||||||
async def test_form_reauth_websocket_cannot_connect(hass, remotews: Mock):
|
async def test_form_reauth_websocket_cannot_connect(hass, remotews: Mock):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user