Fix slower tests in sonarr (#39073)

pull/38946/head
Chris Talkington 2020-08-20 05:21:58 -05:00 committed by GitHub
parent d3389fa22e
commit da5dc1130e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 38 deletions

View File

@ -18,6 +18,7 @@ from homeassistant.const import (
) )
from homeassistant.helpers.typing import HomeAssistantType from homeassistant.helpers.typing import HomeAssistantType
from tests.async_mock import patch
from tests.common import MockConfigEntry, load_fixture from tests.common import MockConfigEntry, load_fixture
from tests.test_util.aiohttp import AiohttpClientMocker from tests.test_util.aiohttp import AiohttpClientMocker
@ -196,6 +197,10 @@ async def setup_integration(
CONF_UPCOMING_DAYS: DEFAULT_UPCOMING_DAYS, CONF_UPCOMING_DAYS: DEFAULT_UPCOMING_DAYS,
CONF_WANTED_MAX_ITEMS: DEFAULT_WANTED_MAX_ITEMS, CONF_WANTED_MAX_ITEMS: DEFAULT_WANTED_MAX_ITEMS,
}, },
options={
CONF_UPCOMING_DAYS: DEFAULT_UPCOMING_DAYS,
CONF_WANTED_MAX_ITEMS: DEFAULT_WANTED_MAX_ITEMS,
},
) )
entry.add_to_hass(hass) entry.add_to_hass(hass)
@ -215,3 +220,17 @@ async def setup_integration(
await hass.async_block_till_done() await hass.async_block_till_done()
return entry return entry
def _patch_async_setup(return_value=True):
"""Patch the async setup of sonarr."""
return patch(
"homeassistant.components.sonarr.async_setup", return_value=return_value
)
def _patch_async_setup_entry(return_value=True):
"""Patch the async entry setup of sonarr."""
return patch(
"homeassistant.components.sonarr.async_setup_entry", return_value=return_value,
)

View File

@ -19,6 +19,8 @@ from tests.async_mock import patch
from tests.components.sonarr import ( from tests.components.sonarr import (
HOST, HOST,
MOCK_USER_INPUT, MOCK_USER_INPUT,
_patch_async_setup,
_patch_async_setup_entry,
mock_connection, mock_connection,
mock_connection_error, mock_connection_error,
mock_connection_invalid_auth, mock_connection_invalid_auth,
@ -27,30 +29,6 @@ from tests.components.sonarr import (
from tests.test_util.aiohttp import AiohttpClientMocker from tests.test_util.aiohttp import AiohttpClientMocker
async def test_options(hass, aioclient_mock: AiohttpClientMocker):
"""Test updating options."""
entry = await setup_integration(hass, aioclient_mock)
assert entry.options[CONF_UPCOMING_DAYS] == DEFAULT_UPCOMING_DAYS
assert entry.options[CONF_WANTED_MAX_ITEMS] == DEFAULT_WANTED_MAX_ITEMS
result = await hass.config_entries.options.async_init(entry.entry_id)
assert result["type"] == RESULT_TYPE_FORM
assert result["step_id"] == "init"
with patch(
"homeassistant.components.sonarr.async_setup_entry", return_value=True
), patch("homeassistant.components.sonarr.async_setup", return_value=True):
result = await hass.config_entries.options.async_configure(
result["flow_id"],
user_input={CONF_UPCOMING_DAYS: 2, CONF_WANTED_MAX_ITEMS: 100},
)
assert result["type"] == RESULT_TYPE_CREATE_ENTRY
assert result["data"][CONF_UPCOMING_DAYS] == 2
assert result["data"][CONF_WANTED_MAX_ITEMS] == 100
async def test_show_user_form(hass: HomeAssistantType) -> None: async def test_show_user_form(hass: HomeAssistantType) -> None:
"""Test that the user set up form is served.""" """Test that the user set up form is served."""
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(
@ -118,9 +96,10 @@ async def test_full_import_flow_implementation(
user_input = MOCK_USER_INPUT.copy() user_input = MOCK_USER_INPUT.copy()
result = await hass.config_entries.flow.async_init( with _patch_async_setup(), _patch_async_setup_entry():
DOMAIN, context={CONF_SOURCE: SOURCE_IMPORT}, data=user_input, result = await hass.config_entries.flow.async_init(
) DOMAIN, context={CONF_SOURCE: SOURCE_IMPORT}, data=user_input,
)
assert result["type"] == RESULT_TYPE_CREATE_ENTRY assert result["type"] == RESULT_TYPE_CREATE_ENTRY
assert result["title"] == HOST assert result["title"] == HOST
@ -128,10 +107,6 @@ async def test_full_import_flow_implementation(
assert result["data"] assert result["data"]
assert result["data"][CONF_HOST] == HOST assert result["data"][CONF_HOST] == HOST
assert result["result"]
assert result["result"].options[CONF_UPCOMING_DAYS] == DEFAULT_UPCOMING_DAYS
assert result["result"].options[CONF_WANTED_MAX_ITEMS] == DEFAULT_WANTED_MAX_ITEMS
async def test_full_user_flow_implementation( async def test_full_user_flow_implementation(
hass: HomeAssistantType, aioclient_mock: AiohttpClientMocker hass: HomeAssistantType, aioclient_mock: AiohttpClientMocker
@ -147,9 +122,8 @@ async def test_full_user_flow_implementation(
assert result["step_id"] == "user" assert result["step_id"] == "user"
user_input = MOCK_USER_INPUT.copy() user_input = MOCK_USER_INPUT.copy()
with patch(
"homeassistant.components.sonarr.async_setup_entry", return_value=True with _patch_async_setup(), _patch_async_setup_entry():
), patch("homeassistant.components.sonarr.async_setup", return_value=True):
result = await hass.config_entries.flow.async_configure( result = await hass.config_entries.flow.async_configure(
result["flow_id"], user_input=user_input, result["flow_id"], user_input=user_input,
) )
@ -179,9 +153,7 @@ async def test_full_user_flow_advanced_options(
CONF_VERIFY_SSL: True, CONF_VERIFY_SSL: True,
} }
with patch( with _patch_async_setup(), _patch_async_setup_entry():
"homeassistant.components.sonarr.async_setup_entry", return_value=True
), patch("homeassistant.components.sonarr.async_setup", return_value=True):
result = await hass.config_entries.flow.async_configure( result = await hass.config_entries.flow.async_configure(
result["flow_id"], user_input=user_input, result["flow_id"], user_input=user_input,
) )
@ -192,3 +164,25 @@ async def test_full_user_flow_advanced_options(
assert result["data"] assert result["data"]
assert result["data"][CONF_HOST] == HOST assert result["data"][CONF_HOST] == HOST
assert result["data"][CONF_VERIFY_SSL] assert result["data"][CONF_VERIFY_SSL]
async def test_options_flow(hass, aioclient_mock: AiohttpClientMocker):
"""Test updating options."""
entry = await setup_integration(hass, aioclient_mock, skip_entry_setup=True)
assert entry.options[CONF_UPCOMING_DAYS] == DEFAULT_UPCOMING_DAYS
assert entry.options[CONF_WANTED_MAX_ITEMS] == DEFAULT_WANTED_MAX_ITEMS
result = await hass.config_entries.options.async_init(entry.entry_id)
assert result["type"] == RESULT_TYPE_FORM
assert result["step_id"] == "init"
with _patch_async_setup(), _patch_async_setup_entry():
result = await hass.config_entries.options.async_configure(
result["flow_id"],
user_input={CONF_UPCOMING_DAYS: 2, CONF_WANTED_MAX_ITEMS: 100},
)
assert result["type"] == RESULT_TYPE_CREATE_ENTRY
assert result["data"][CONF_UPCOMING_DAYS] == 2
assert result["data"][CONF_WANTED_MAX_ITEMS] == 100

View File

@ -7,6 +7,7 @@ from homeassistant.config_entries import (
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from tests.async_mock import patch
from tests.components.sonarr import setup_integration from tests.components.sonarr import setup_integration
from tests.test_util.aiohttp import AiohttpClientMocker from tests.test_util.aiohttp import AiohttpClientMocker
@ -23,7 +24,10 @@ async def test_unload_config_entry(
hass: HomeAssistant, aioclient_mock: AiohttpClientMocker hass: HomeAssistant, aioclient_mock: AiohttpClientMocker
) -> None: ) -> None:
"""Test the configuration entry unloading.""" """Test the configuration entry unloading."""
entry = await setup_integration(hass, aioclient_mock) with patch(
"homeassistant.components.sonarr.sensor.async_setup_entry", return_value=True,
):
entry = await setup_integration(hass, aioclient_mock)
assert hass.data[DOMAIN] assert hass.data[DOMAIN]
assert entry.entry_id in hass.data[DOMAIN] assert entry.entry_id in hass.data[DOMAIN]