async def test_restoring_clients(hass): """Test restoring existing device_tracker entities if not detected on startup.""" entry = mock_config_entry() entry.add_to_hass(hass) registry = await entity_registry.async_get_registry(hass) registry.async_get_or_create( "device_tracker", DOMAIN, TEST_CLIENT[CONF_MAC], suggested_object_id="ruckus_test_device", config_entry=entry, ) with patch( "homeassistant.components.ruckus_unleashed.Ruckus.connect", return_value=None, ), patch( "homeassistant.components.ruckus_unleashed.Ruckus.mesh_name", return_value=DEFAULT_TITLE, ), patch( "homeassistant.components.ruckus_unleashed.Ruckus.clients", return_value={}, ): entry.add_to_hass(hass) await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() device = hass.states.get(TEST_CLIENT_ENTITY_ID) assert device is not None assert device.state == STATE_NOT_HOME
async def test_setup_entry_connection_error(hass): """Test entry setup failed due to connection error.""" entry = mock_config_entry() with patch( "homeassistant.components.ruckus_unleashed.Ruckus", side_effect=ConnectionError, ): entry.add_to_hass(hass) await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() assert entry.state is ConfigEntryState.SETUP_RETRY
async def test_setup_entry_login_error(hass): """Test entry setup failed due to login error.""" entry = mock_config_entry() with patch( "homeassistant.components.ruckus_unleashed.Ruckus", side_effect=AuthenticationError, ): entry.add_to_hass(hass) result = await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() assert result is False
async def test_setup_entry_login_error(opp): """Test entry setup failed due to login error.""" entry = mock_config_entry() with patch( "openpeerpower.components.ruckus_unleashed.Ruckus", side_effect=AuthenticationError, ): entry.add_to_opp(opp) result = await opp.config_entries.async_setup(entry.entry_id) await opp.async_block_till_done() assert result is False
async def test_config_not_ready_during_setup(hass): """Test we throw a ConfigNotReady if Coordinator update fails.""" entry = mock_config_entry() with patch( "homeassistant.components.ruckus_unleashed.Ruckus.connect", return_value=None, ), patch( "homeassistant.components.ruckus_unleashed.Ruckus.mesh_name", return_value=DEFAULT_TITLE, ), patch( "homeassistant.components.ruckus_unleashed.Ruckus.system_info", return_value=DEFAULT_SYSTEM_INFO, ), patch( "homeassistant.components.ruckus_unleashed.RuckusUnleashedDataUpdateCoordinator._async_update_data", side_effect=ConnectionError, ): entry.add_to_hass(hass) await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() assert entry.state is ConfigEntryState.SETUP_RETRY
async def test_restoring_clients(opp): """Test restoring existing device_tracker entities if not detected on startup.""" entry = mock_config_entry() entry.add_to_opp(opp) registry = er.async_get(opp) registry.async_get_or_create( "device_tracker", DOMAIN, DEFAULT_UNIQUE_ID, suggested_object_id="ruckus_test_device", config_entry=entry, ) with patch( "openpeerpower.components.ruckus_unleashed.Ruckus.connect", return_value=None, ), patch( "openpeerpower.components.ruckus_unleashed.Ruckus.mesh_name", return_value=DEFAULT_TITLE, ), patch( "openpeerpower.components.ruckus_unleashed.Ruckus.system_info", return_value=DEFAULT_SYSTEM_INFO, ), patch( "openpeerpower.components.ruckus_unleashed.Ruckus.ap_info", return_value=DEFAULT_AP_INFO, ), patch( "openpeerpower.components.ruckus_unleashed.RuckusUnleashedDataUpdateCoordinator._fetch_clients", return_value={}, ): entry.add_to_opp(opp) await opp.config_entries.async_setup(entry.entry_id) await opp.async_block_till_done() device = opp.states.get(TEST_CLIENT_ENTITY_ID) assert device is not None assert device.state == STATE_NOT_HOME