Handle error fetching available account link services ()

This commit is contained in:
Paulus Schoutsen 2020-05-11 05:09:44 -07:00 committed by GitHub
parent f4ab5ee54f
commit c401949af8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions
homeassistant/components/cloud
tests/components/cloud

View file

@ -3,6 +3,7 @@ import asyncio
import logging
from typing import Any
import aiohttp
from hass_nabucasa import account_link
from homeassistant.const import MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION
@ -73,7 +74,10 @@ async def _get_services(hass):
if services is not None:
return services
services = await account_link.async_fetch_available_services(hass.data[DOMAIN])
try:
services = await account_link.async_fetch_available_services(hass.data[DOMAIN])
except (aiohttp.ClientError, asyncio.TimeoutError):
return []
hass.data[DATA_SERVICES] = services

View file

@ -96,6 +96,18 @@ async def test_get_services_cached(hass):
assert await account_link._get_services(hass) == 4
async def test_get_services_error(hass):
"""Test that we cache services."""
hass.data["cloud"] = None
with patch.object(account_link, "CACHE_TIMEOUT", 0), patch(
"hass_nabucasa.account_link.async_fetch_available_services",
side_effect=asyncio.TimeoutError,
):
assert await account_link._get_services(hass) == []
assert account_link.DATA_SERVICES not in hass.data
async def test_implementation(hass, flow_handler):
"""Test Cloud OAuth2 implementation."""
hass.data["cloud"] = None