diff --git a/tests/components/unifi/conftest.py b/tests/components/unifi/conftest.py index e605599700d..2ea772b5173 100644 --- a/tests/components/unifi/conftest.py +++ b/tests/components/unifi/conftest.py @@ -87,7 +87,6 @@ def config_entry_fixture( unique_id="1", data=config_entry_data, options=config_entry_options, - version=1, ) config_entry.add_to_hass(hass) return config_entry @@ -112,8 +111,8 @@ def config_entry_options_fixture() -> MappingProxyType[str, Any]: return {} -@pytest.fixture(name="mock_unifi_requests") -def default_request_fixture( +@pytest.fixture(name="mock_requests") +def request_fixture( aioclient_mock: AiohttpClientMocker, client_payload: list[dict[str, Any]], clients_all_payload: list[dict[str, Any]], @@ -127,7 +126,7 @@ def default_request_fixture( ) -> Callable[[str], None]: """Mock default UniFi requests responses.""" - def __mock_default_requests(host: str, site_id: str) -> None: + def __mock_requests(host: str = DEFAULT_HOST, site_id: str = DEFAULT_SITE) -> None: url = f"https://{host}:{DEFAULT_PORT}" def mock_get_request(path: str, payload: list[dict[str, Any]]) -> None: @@ -153,7 +152,7 @@ def default_request_fixture( mock_get_request(f"/api/s/{site_id}/stat/sysinfo", system_information_payload) mock_get_request(f"/api/s/{site_id}/rest/wlanconf", wlan_payload) - return __mock_default_requests + return __mock_requests # Request payload fixtures @@ -229,22 +228,24 @@ def wlan_data_fixture() -> list[dict[str, Any]]: return [] -@pytest.fixture(name="setup_default_unifi_requests") -def default_vapix_requests_fixture( - config_entry: ConfigEntry, - mock_unifi_requests: Callable[[str, str], None], +@pytest.fixture(name="mock_default_requests") +def default_requests_fixture( + mock_requests: Callable[[str, str], None], ) -> None: - """Mock default UniFi requests responses.""" - mock_unifi_requests(config_entry.data[CONF_HOST], config_entry.data[CONF_SITE_ID]) + """Mock UniFi requests responses with default host and site.""" + mock_requests(DEFAULT_HOST, DEFAULT_SITE) -@pytest.fixture(name="prepare_config_entry") -async def prep_config_entry_fixture( - hass: HomeAssistant, config_entry: ConfigEntry, setup_default_unifi_requests: None +@pytest.fixture(name="config_entry_factory") +async def config_entry_factory_fixture( + hass: HomeAssistant, + config_entry: ConfigEntry, + mock_requests: Callable[[str, str], None], ) -> Callable[[], ConfigEntry]: - """Fixture factory to set up UniFi network integration.""" + """Fixture factory that can set up UniFi network integration.""" async def __mock_setup_config_entry() -> ConfigEntry: + mock_requests(config_entry.data[CONF_HOST], config_entry.data[CONF_SITE_ID]) await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() return config_entry @@ -252,12 +253,12 @@ async def prep_config_entry_fixture( return __mock_setup_config_entry -@pytest.fixture(name="setup_config_entry") -async def setup_config_entry_fixture( - hass: HomeAssistant, prepare_config_entry: Callable[[], ConfigEntry] +@pytest.fixture(name="config_entry_setup") +async def config_entry_setup_fixture( + hass: HomeAssistant, config_entry_factory: Callable[[], ConfigEntry] ) -> ConfigEntry: - """Fixture to set up UniFi network integration.""" - return await prepare_config_entry() + """Fixture providing a set up instance of UniFi network integration.""" + return await config_entry_factory() # Websocket fixtures diff --git a/tests/components/unifi/test_button.py b/tests/components/unifi/test_button.py index 25fef0fc10b..7199a5f3ed6 100644 --- a/tests/components/unifi/test_button.py +++ b/tests/components/unifi/test_button.py @@ -83,11 +83,11 @@ async def test_restart_device_button( hass: HomeAssistant, entity_registry: er.EntityRegistry, aioclient_mock: AiohttpClientMocker, - setup_config_entry, + config_entry_setup, websocket_mock, ) -> None: """Test restarting device button.""" - config_entry = setup_config_entry + config_entry = config_entry_setup assert len(hass.states.async_entity_ids(BUTTON_DOMAIN)) == 1 ent_reg_entry = entity_registry.async_get("button.switch_restart") @@ -169,11 +169,11 @@ async def test_power_cycle_poe( hass: HomeAssistant, entity_registry: er.EntityRegistry, aioclient_mock: AiohttpClientMocker, - setup_config_entry, + config_entry_setup, websocket_mock, ) -> None: """Test restarting device button.""" - config_entry = setup_config_entry + config_entry = config_entry_setup assert len(hass.states.async_entity_ids(BUTTON_DOMAIN)) == 2 ent_reg_entry = entity_registry.async_get("button.switch_port_1_power_cycle") @@ -225,11 +225,11 @@ async def test_wlan_regenerate_password( hass: HomeAssistant, entity_registry: er.EntityRegistry, aioclient_mock: AiohttpClientMocker, - setup_config_entry, + config_entry_setup, websocket_mock, ) -> None: """Test WLAN regenerate password button.""" - config_entry = setup_config_entry + config_entry = config_entry_setup assert len(hass.states.async_entity_ids(BUTTON_DOMAIN)) == 0 button_regenerate_password = "button.ssid_1_regenerate_password" diff --git a/tests/components/unifi/test_config_flow.py b/tests/components/unifi/test_config_flow.py index 06ada29f911..7abf45dd16f 100644 --- a/tests/components/unifi/test_config_flow.py +++ b/tests/components/unifi/test_config_flow.py @@ -1,9 +1,10 @@ """Test UniFi Network config flow.""" import socket -from unittest.mock import patch +from unittest.mock import PropertyMock, patch import aiounifi +import pytest from homeassistant import config_entries from homeassistant.components import ssdp @@ -23,20 +24,17 @@ from homeassistant.components.unifi.const import ( CONF_TRACK_WIRED_CLIENTS, DOMAIN as UNIFI_DOMAIN, ) -from homeassistant.config_entries import SOURCE_REAUTH +from homeassistant.config_entries import SOURCE_REAUTH, ConfigEntry from homeassistant.const import ( CONF_HOST, CONF_PASSWORD, CONF_PORT, CONF_USERNAME, CONF_VERIFY_SSL, - CONTENT_TYPE_JSON, ) from homeassistant.core import HomeAssistant from homeassistant.data_entry_flow import FlowResultType -from .test_hub import setup_unifi_integration - from tests.common import MockConfigEntry from tests.test_util.aiohttp import AiohttpClientMocker @@ -98,7 +96,7 @@ DPI_GROUPS = [ async def test_flow_works( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker, mock_discovery + hass: HomeAssistant, mock_discovery, mock_default_requests: None ) -> None: """Test config flow.""" mock_discovery.return_value = "1" @@ -116,25 +114,6 @@ async def test_flow_works( CONF_VERIFY_SSL: False, } - aioclient_mock.get("https://1.2.3.4:1234", status=302) - - aioclient_mock.post( - "https://1.2.3.4:1234/api/login", - json={"data": "login successful", "meta": {"rc": "ok"}}, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - - aioclient_mock.get( - "https://1.2.3.4:1234/api/self/sites", - json={ - "data": [ - {"desc": "Site name", "name": "site_id", "role": "admin", "_id": "1"} - ], - "meta": {"rc": "ok"}, - }, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - result = await hass.config_entries.flow.async_configure( result["flow_id"], user_input={ @@ -159,7 +138,7 @@ async def test_flow_works( async def test_flow_works_negative_discovery( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker, mock_discovery + hass: HomeAssistant, aioclient_mock: AiohttpClientMocker ) -> None: """Test config flow with a negative outcome of async_discovery_unifi.""" result = await hass.config_entries.flow.async_init( @@ -177,8 +156,17 @@ async def test_flow_works_negative_discovery( } +@pytest.mark.parametrize( + "site_payload", + [ + [ + {"name": "default", "role": "admin", "desc": "site name", "_id": "1"}, + {"name": "site2", "role": "admin", "desc": "site2 name", "_id": "2"}, + ] + ], +) async def test_flow_multiple_sites( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, mock_default_requests: None ) -> None: """Test config flow works when finding multiple sites.""" result = await hass.config_entries.flow.async_init( @@ -188,26 +176,6 @@ async def test_flow_multiple_sites( assert result["type"] is FlowResultType.FORM assert result["step_id"] == "user" - aioclient_mock.get("https://1.2.3.4:1234", status=302) - - aioclient_mock.post( - "https://1.2.3.4:1234/api/login", - json={"data": "login successful", "meta": {"rc": "ok"}}, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - - aioclient_mock.get( - "https://1.2.3.4:1234/api/self/sites", - json={ - "data": [ - {"name": "default", "role": "admin", "desc": "site name", "_id": "1"}, - {"name": "site2", "role": "admin", "desc": "site2 name", "_id": "2"}, - ], - "meta": {"rc": "ok"}, - }, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - result = await hass.config_entries.flow.async_configure( result["flow_id"], user_input={ @@ -226,11 +194,9 @@ async def test_flow_multiple_sites( async def test_flow_raise_already_configured( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, config_entry_setup: ConfigEntry ) -> None: """Test config flow aborts since a connected config entry already exists.""" - await setup_unifi_integration(hass, aioclient_mock) - result = await hass.config_entries.flow.async_init( UNIFI_DOMAIN, context={"source": config_entries.SOURCE_USER} ) @@ -238,27 +204,6 @@ async def test_flow_raise_already_configured( assert result["type"] is FlowResultType.FORM assert result["step_id"] == "user" - aioclient_mock.clear_requests() - - aioclient_mock.get("https://1.2.3.4:1234", status=302) - - aioclient_mock.post( - "https://1.2.3.4:1234/api/login", - json={"data": "login successful", "meta": {"rc": "ok"}}, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - - aioclient_mock.get( - "https://1.2.3.4:1234/api/self/sites", - json={ - "data": [ - {"desc": "Site name", "name": "site_id", "role": "admin", "_id": "1"} - ], - "meta": {"rc": "ok"}, - }, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - result = await hass.config_entries.flow.async_configure( result["flow_id"], user_input={ @@ -275,15 +220,9 @@ async def test_flow_raise_already_configured( async def test_flow_aborts_configuration_updated( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, config_entry_setup: ConfigEntry ) -> None: """Test config flow aborts since a connected config entry already exists.""" - entry = MockConfigEntry( - domain=UNIFI_DOMAIN, data={"host": "1.2.3.4", "site": "site_id"}, unique_id="1" - ) - entry.add_to_hass(hass) - entry.runtime_data = None - result = await hass.config_entries.flow.async_init( UNIFI_DOMAIN, context={"source": config_entries.SOURCE_USER} ) @@ -291,33 +230,17 @@ async def test_flow_aborts_configuration_updated( assert result["type"] is FlowResultType.FORM assert result["step_id"] == "user" - aioclient_mock.get("https://1.2.3.4:1234", status=302) - - aioclient_mock.post( - "https://1.2.3.4:1234/api/login", - json={"data": "login successful", "meta": {"rc": "ok"}}, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - - aioclient_mock.get( - "https://1.2.3.4:1234/api/self/sites", - json={ - "data": [ - {"desc": "Site name", "name": "site_id", "role": "admin", "_id": "1"} - ], - "meta": {"rc": "ok"}, - }, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - - with patch("homeassistant.components.unifi.async_setup_entry"): + with patch("homeassistant.components.unifi.async_setup_entry") and patch( + "homeassistant.components.unifi.UnifiHub.available", new_callable=PropertyMock + ) as ws_mock: + ws_mock.return_value = False result = await hass.config_entries.flow.async_configure( result["flow_id"], user_input={ CONF_HOST: "1.2.3.4", CONF_USERNAME: "username", CONF_PASSWORD: "password", - CONF_PORT: 1234, + CONF_PORT: 12345, CONF_VERIFY_SSL: True, }, ) @@ -327,7 +250,7 @@ async def test_flow_aborts_configuration_updated( async def test_flow_fails_user_credentials_faulty( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, mock_default_requests: None ) -> None: """Test config flow.""" result = await hass.config_entries.flow.async_init( @@ -337,8 +260,6 @@ async def test_flow_fails_user_credentials_faulty( assert result["type"] is FlowResultType.FORM assert result["step_id"] == "user" - aioclient_mock.get("https://1.2.3.4:1234", status=302) - with patch("aiounifi.Controller.login", side_effect=aiounifi.errors.Unauthorized): result = await hass.config_entries.flow.async_configure( result["flow_id"], @@ -356,7 +277,7 @@ async def test_flow_fails_user_credentials_faulty( async def test_flow_fails_hub_unavailable( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, mock_default_requests: None ) -> None: """Test config flow.""" result = await hass.config_entries.flow.async_init( @@ -366,8 +287,6 @@ async def test_flow_fails_hub_unavailable( assert result["type"] is FlowResultType.FORM assert result["step_id"] == "user" - aioclient_mock.get("https://1.2.3.4:1234", status=302) - with patch("aiounifi.Controller.login", side_effect=aiounifi.errors.RequestError): result = await hass.config_entries.flow.async_configure( result["flow_id"], @@ -385,12 +304,10 @@ async def test_flow_fails_hub_unavailable( async def test_reauth_flow_update_configuration( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, config_entry_setup: ConfigEntry ) -> None: """Verify reauth flow can update hub configuration.""" - config_entry = await setup_unifi_integration(hass, aioclient_mock) - hub = config_entry.runtime_data - hub.websocket.available = False + config_entry = config_entry_setup result = await hass.config_entries.flow.async_init( UNIFI_DOMAIN, @@ -405,37 +322,20 @@ async def test_reauth_flow_update_configuration( assert result["type"] is FlowResultType.FORM assert result["step_id"] == "user" - aioclient_mock.clear_requests() - - aioclient_mock.get("https://1.2.3.4:1234", status=302) - - aioclient_mock.post( - "https://1.2.3.4:1234/api/login", - json={"data": "login successful", "meta": {"rc": "ok"}}, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - - aioclient_mock.get( - "https://1.2.3.4:1234/api/self/sites", - json={ - "data": [ - {"desc": "Site name", "name": "site_id", "role": "admin", "_id": "1"} - ], - "meta": {"rc": "ok"}, - }, - headers={"content-type": CONTENT_TYPE_JSON}, - ) - - result = await hass.config_entries.flow.async_configure( - result["flow_id"], - user_input={ - CONF_HOST: "1.2.3.4", - CONF_USERNAME: "new_name", - CONF_PASSWORD: "new_pass", - CONF_PORT: 1234, - CONF_VERIFY_SSL: True, - }, - ) + with patch( + "homeassistant.components.unifi.UnifiHub.available", new_callable=PropertyMock + ) as ws_mock: + ws_mock.return_value = False + result = await hass.config_entries.flow.async_configure( + result["flow_id"], + user_input={ + CONF_HOST: "1.2.3.4", + CONF_USERNAME: "new_name", + CONF_PASSWORD: "new_pass", + CONF_PORT: 1234, + CONF_VERIFY_SSL: True, + }, + ) assert result["type"] is FlowResultType.ABORT assert result["reason"] == "reauth_successful" @@ -444,19 +344,15 @@ async def test_reauth_flow_update_configuration( assert config_entry.data[CONF_PASSWORD] == "new_pass" +@pytest.mark.parametrize("client_payload", [CLIENTS]) +@pytest.mark.parametrize("device_payload", [DEVICES]) +@pytest.mark.parametrize("wlan_payload", [WLANS]) +@pytest.mark.parametrize("dpi_group_payload", [DPI_GROUPS]) async def test_advanced_option_flow( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, config_entry_setup: ConfigEntry ) -> None: """Test advanced config flow options.""" - config_entry = await setup_unifi_integration( - hass, - aioclient_mock, - clients_response=CLIENTS, - devices_response=DEVICES, - wlans_response=WLANS, - dpigroup_response=DPI_GROUPS, - dpiapp_response=[], - ) + config_entry = config_entry_setup result = await hass.config_entries.options.async_init( config_entry.entry_id, context={"show_advanced_options": True} @@ -535,13 +431,12 @@ async def test_advanced_option_flow( } +@pytest.mark.parametrize("client_payload", [CLIENTS]) async def test_simple_option_flow( - hass: HomeAssistant, aioclient_mock: AiohttpClientMocker + hass: HomeAssistant, config_entry_setup: ConfigEntry ) -> None: """Test simple config flow options.""" - config_entry = await setup_unifi_integration( - hass, aioclient_mock, clients_response=CLIENTS - ) + config_entry = config_entry_setup result = await hass.config_entries.options.async_init( config_entry.entry_id, context={"show_advanced_options": False} @@ -608,21 +503,18 @@ async def test_form_ssdp(hass: HomeAssistant) -> None: } -async def test_form_ssdp_aborts_if_host_already_exists(hass: HomeAssistant) -> None: +async def test_form_ssdp_aborts_if_host_already_exists( + hass: HomeAssistant, config_entry: ConfigEntry +) -> None: """Test we abort if the host is already configured.""" - entry = MockConfigEntry( - domain=UNIFI_DOMAIN, - data={"host": "192.168.208.1", "site": "site_id"}, - ) - entry.add_to_hass(hass) result = await hass.config_entries.flow.async_init( UNIFI_DOMAIN, context={"source": config_entries.SOURCE_SSDP}, data=ssdp.SsdpServiceInfo( ssdp_usn="mock_usn", ssdp_st="mock_st", - ssdp_location="http://192.168.208.1:41417/rootDesc.xml", + ssdp_location="http://1.2.3.4:1234/rootDesc.xml", upnp={ "friendlyName": "UniFi Dream Machine", "modelDescription": "UniFi Dream Machine Pro", @@ -634,26 +526,22 @@ async def test_form_ssdp_aborts_if_host_already_exists(hass: HomeAssistant) -> N assert result["reason"] == "already_configured" -async def test_form_ssdp_aborts_if_serial_already_exists(hass: HomeAssistant) -> None: +async def test_form_ssdp_aborts_if_serial_already_exists( + hass: HomeAssistant, config_entry: ConfigEntry +) -> None: """Test we abort if the serial is already configured.""" - entry = MockConfigEntry( - domain=UNIFI_DOMAIN, - data={"controller": {"host": "1.2.3.4", "site": "site_id"}}, - unique_id="e0:63:da:20:14:a9", - ) - entry.add_to_hass(hass) result = await hass.config_entries.flow.async_init( UNIFI_DOMAIN, context={"source": config_entries.SOURCE_SSDP}, data=ssdp.SsdpServiceInfo( ssdp_usn="mock_usn", ssdp_st="mock_st", - ssdp_location="http://192.168.208.1:41417/rootDesc.xml", + ssdp_location="http://1.2.3.4:1234/rootDesc.xml", upnp={ "friendlyName": "UniFi Dream Machine", "modelDescription": "UniFi Dream Machine Pro", - "serialNumber": "e0:63:da:20:14:a9", + "serialNumber": "1", }, ), ) @@ -662,7 +550,7 @@ async def test_form_ssdp_aborts_if_serial_already_exists(hass: HomeAssistant) -> async def test_form_ssdp_gets_form_with_ignored_entry(hass: HomeAssistant) -> None: - """Test we can still setup if there is an ignored entry.""" + """Test we can still setup if there is an ignored never configured entry.""" entry = MockConfigEntry( domain=UNIFI_DOMAIN, @@ -676,11 +564,11 @@ async def test_form_ssdp_gets_form_with_ignored_entry(hass: HomeAssistant) -> No data=ssdp.SsdpServiceInfo( ssdp_usn="mock_usn", ssdp_st="mock_st", - ssdp_location="http://1.2.3.4:41417/rootDesc.xml", + ssdp_location="http://1.2.3.4:1234/rootDesc.xml", upnp={ "friendlyName": "UniFi Dream Machine New", "modelDescription": "UniFi Dream Machine Pro", - "serialNumber": "e0:63:da:20:14:a9", + "serialNumber": "1", }, ), ) diff --git a/tests/components/unifi/test_hub.py b/tests/components/unifi/test_hub.py index b39ba1915e6..f158d7e57eb 100644 --- a/tests/components/unifi/test_hub.py +++ b/tests/components/unifi/test_hub.py @@ -239,14 +239,14 @@ async def setup_unifi_integration( async def test_hub_setup( device_registry: dr.DeviceRegistry, - prepare_config_entry: Callable[[], ConfigEntry], + config_entry_factory: Callable[[], ConfigEntry], ) -> None: """Successful setup.""" with patch( "homeassistant.config_entries.ConfigEntries.async_forward_entry_setups", return_value=True, ) as forward_entry_setup: - config_entry = await prepare_config_entry() + config_entry = await config_entry_factory() hub = config_entry.runtime_data entry = hub.config.entry @@ -288,10 +288,10 @@ async def test_hub_setup( async def test_reset_after_successful_setup( - hass: HomeAssistant, setup_config_entry: ConfigEntry + hass: HomeAssistant, config_entry_setup: ConfigEntry ) -> None: """Calling reset when the entry has been setup.""" - config_entry = setup_config_entry + config_entry = config_entry_setup assert config_entry.state is ConfigEntryState.LOADED assert await hass.config_entries.async_unload(config_entry.entry_id) @@ -299,10 +299,10 @@ async def test_reset_after_successful_setup( async def test_reset_fails( - hass: HomeAssistant, setup_config_entry: ConfigEntry + hass: HomeAssistant, config_entry_setup: ConfigEntry ) -> None: """Calling reset when the entry has been setup can return false.""" - config_entry = setup_config_entry + config_entry = config_entry_setup assert config_entry.state is ConfigEntryState.LOADED with patch( @@ -330,7 +330,7 @@ async def test_reset_fails( async def test_connection_state_signalling( hass: HomeAssistant, mock_device_registry, - setup_config_entry: ConfigEntry, + config_entry_setup: ConfigEntry, websocket_mock, ) -> None: """Verify connection statesignalling and connection state are working.""" @@ -349,7 +349,7 @@ async def test_connection_state_signalling( async def test_reconnect_mechanism( hass: HomeAssistant, aioclient_mock: AiohttpClientMocker, - setup_config_entry: ConfigEntry, + config_entry_setup: ConfigEntry, websocket_mock, ) -> None: """Verify reconnect prints only on first reconnection try.""" @@ -378,7 +378,7 @@ async def test_reconnect_mechanism( async def test_reconnect_mechanism_exceptions( hass: HomeAssistant, aioclient_mock: AiohttpClientMocker, - setup_config_entry: ConfigEntry, + config_entry_setup: ConfigEntry, websocket_mock, exception, ) -> None: diff --git a/tests/components/unifi/test_init.py b/tests/components/unifi/test_init.py index 654635ef59f..ef9ea843bc6 100644 --- a/tests/components/unifi/test_init.py +++ b/tests/components/unifi/test_init.py @@ -35,20 +35,20 @@ async def test_setup_with_no_config(hass: HomeAssistant) -> None: async def test_setup_entry_fails_config_entry_not_ready( - hass: HomeAssistant, prepare_config_entry: Callable[[], ConfigEntry] + hass: HomeAssistant, config_entry_factory: Callable[[], ConfigEntry] ) -> None: """Failed authentication trigger a reauthentication flow.""" with patch( "homeassistant.components.unifi.get_unifi_api", side_effect=CannotConnect, ): - config_entry = await prepare_config_entry() + config_entry = await config_entry_factory() assert config_entry.state == ConfigEntryState.SETUP_RETRY async def test_setup_entry_fails_trigger_reauth_flow( - hass: HomeAssistant, prepare_config_entry: Callable[[], ConfigEntry] + hass: HomeAssistant, config_entry_factory: Callable[[], ConfigEntry] ) -> None: """Failed authentication trigger a reauthentication flow.""" with ( @@ -58,7 +58,7 @@ async def test_setup_entry_fails_trigger_reauth_flow( ), patch.object(hass.config_entries.flow, "async_init") as mock_flow_init, ): - config_entry = await prepare_config_entry() + config_entry = await config_entry_factory() mock_flow_init.assert_called_once() assert config_entry.state == ConfigEntryState.SETUP_ERROR @@ -86,7 +86,7 @@ async def test_setup_entry_fails_trigger_reauth_flow( async def test_wireless_clients( hass: HomeAssistant, hass_storage: dict[str, Any], - prepare_config_entry: Callable[[], ConfigEntry], + config_entry_factory: Callable[[], ConfigEntry], ) -> None: """Verify wireless clients class.""" hass_storage[unifi.STORAGE_KEY] = { @@ -98,7 +98,7 @@ async def test_wireless_clients( }, } - await prepare_config_entry() + await config_entry_factory() await flush_store(hass.data[unifi.UNIFI_WIRELESS_CLIENTS]._store) assert sorted(hass_storage[unifi.STORAGE_KEY]["data"]["wireless_clients"]) == [ @@ -173,14 +173,14 @@ async def test_remove_config_entry_device( hass_storage: dict[str, Any], aioclient_mock: AiohttpClientMocker, device_registry: dr.DeviceRegistry, - prepare_config_entry: Callable[[], ConfigEntry], + config_entry_factory: Callable[[], ConfigEntry], client_payload: list[dict[str, Any]], device_payload: list[dict[str, Any]], mock_unifi_websocket, hass_ws_client: WebSocketGenerator, ) -> None: """Verify removing a device manually.""" - config_entry = await prepare_config_entry() + config_entry = await config_entry_factory() assert await async_setup_component(hass, "config", {}) ws_client = await hass_ws_client(hass)