mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 09:17:53 +00:00
Improve google calendar config flow timeout error messages (#75364)
This commit is contained in:
parent
943e0b9cf7
commit
ca5065a627
@ -91,6 +91,9 @@ class OAuth2FlowHandler(
|
||||
self.flow_impl.client_secret,
|
||||
calendar_access,
|
||||
)
|
||||
except TimeoutError as err:
|
||||
_LOGGER.error("Timeout initializing device flow: %s", str(err))
|
||||
return self.async_abort(reason="timeout_connect")
|
||||
except OAuthError as err:
|
||||
_LOGGER.error("Error initializing device flow: %s", str(err))
|
||||
return self.async_abort(reason="oauth_error")
|
||||
|
@ -16,6 +16,7 @@
|
||||
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
|
||||
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
|
||||
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
|
||||
"timeout_connect": "[%key:common::config_flow::error::timeout_connect%]",
|
||||
"oauth_error": "[%key:common::config_flow::abort::oauth2_error%]",
|
||||
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
|
||||
"code_expired": "Authentication code expired or credential setup is invalid, please try again.",
|
||||
|
@ -242,7 +242,7 @@ async def test_code_error(
|
||||
mock_code_flow: Mock,
|
||||
component_setup: ComponentSetup,
|
||||
) -> None:
|
||||
"""Test successful creds setup."""
|
||||
"""Test server error setting up the oauth flow."""
|
||||
assert await component_setup()
|
||||
|
||||
with patch(
|
||||
@ -256,6 +256,25 @@ async def test_code_error(
|
||||
assert result.get("reason") == "oauth_error"
|
||||
|
||||
|
||||
async def test_timeout_error(
|
||||
hass: HomeAssistant,
|
||||
mock_code_flow: Mock,
|
||||
component_setup: ComponentSetup,
|
||||
) -> None:
|
||||
"""Test timeout error setting up the oauth flow."""
|
||||
assert await component_setup()
|
||||
|
||||
with patch(
|
||||
"homeassistant.components.google.api.OAuth2WebServerFlow.step1_get_device_and_user_codes",
|
||||
side_effect=TimeoutError(),
|
||||
):
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||
)
|
||||
assert result.get("type") == "abort"
|
||||
assert result.get("reason") == "timeout_connect"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("code_expiration_delta", [datetime.timedelta(seconds=50)])
|
||||
async def test_expired_after_exchange(
|
||||
hass: HomeAssistant,
|
||||
|
Loading…
x
Reference in New Issue
Block a user