async def test_hap_create(hass, hmip_config_entry, simple_mock_home): """Mock AsyncHome to execute get_hap.""" hass.config.components.add(HMIPC_DOMAIN) hap = HomematicipHAP(hass, hmip_config_entry) assert hap with patch.object(hap, "async_connect"): assert await hap.async_setup()
async def test_hap_create(hass, hmip_config_entry, simple_mock_home): """Mock AsyncHome to execute get_hap.""" hass.config.components.add(HMIPC_DOMAIN) hap = HomematicipHAP(hass, hmip_config_entry) assert hap with patch( "homeassistant.components.homematicip_cloud.hap.AsyncHome", return_value=simple_mock_home, ), patch.object(hap, "async_connect", return_value=mock_coro(None)): assert await hap.async_setup()
async def test_hap_setup_connection_error(): """Test a failed accesspoint setup.""" hass = Mock() entry = Mock() entry.data = {HMIPC_HAPID: "ABC123", HMIPC_AUTHTOKEN: "123", HMIPC_NAME: "hmip"} hap = HomematicipHAP(hass, entry) with patch.object(hap, "get_hap", side_effect=HmipcConnectionError), pytest.raises( ConfigEntryNotReady ): await hap.async_setup() assert not hass.async_add_job.mock_calls assert not hass.config_entries.flow.async_init.mock_calls
async def test_hap_setup_works(): """Test a successful setup of a accesspoint.""" hass = Mock() entry = Mock() home = Mock() entry.data = { HMIPC_HAPID: "ABC123", HMIPC_AUTHTOKEN: "123", HMIPC_NAME: "hmip" } hap = HomematicipHAP(hass, entry) with patch.object(hap, "get_hap", return_value=home): assert await hap.async_setup() assert hap.home is home assert len(hass.config_entries.async_setup_platforms.mock_calls) == 1
async def test_hmip_add_device(hass, default_mock_hap_factory, hmip_config_entry): """Test Remove of hmip device.""" entity_id = "light.treppe_ch" entity_name = "Treppe CH" device_model = "HmIP-BSL" mock_hap = await default_mock_hap_factory.async_get_mock_hap( test_devices=["Treppe"] ) ha_state, hmip_device = get_and_check_entity_basics( hass, mock_hap, entity_id, entity_name, device_model ) assert ha_state.state == STATE_ON assert hmip_device device_registry = await dr.async_get_registry(hass) entity_registry = await er.async_get_registry(hass) pre_device_count = len(device_registry.devices) pre_entity_count = len(entity_registry.entities) pre_mapping_count = len(mock_hap.hmip_device_by_entity_id) hmip_device.fire_remove_event() await hass.async_block_till_done() assert len(device_registry.devices) == pre_device_count - 1 assert len(entity_registry.entities) == pre_entity_count - 3 assert len(mock_hap.hmip_device_by_entity_id) == pre_mapping_count - 3 reloaded_hap = HomematicipHAP(hass, hmip_config_entry) with patch( "homeassistant.components.homematicip_cloud.HomematicipHAP", return_value=reloaded_hap, ), patch.object(reloaded_hap, "async_connect"), patch.object( reloaded_hap, "get_hap", return_value=mock_hap.home ), patch( "homeassistant.components.homematicip_cloud.hap.asyncio.sleep" ): mock_hap.home.fire_create_event(event_type=EventType.DEVICE_ADDED) await hass.async_block_till_done() assert len(device_registry.devices) == pre_device_count assert len(entity_registry.entities) == pre_entity_count new_hap = hass.data[HMIPC_DOMAIN][HAPID] assert len(new_hap.hmip_device_by_entity_id) == pre_mapping_count
async def test_hap_create_exception(hass, hmip_config_entry, simple_mock_home): """Mock AsyncHome to execute get_hap.""" hass.config.components.add(HMIPC_DOMAIN) hap = HomematicipHAP(hass, hmip_config_entry) assert hap with patch.object(hap, "get_hap", side_effect=HmipConnectionError), pytest.raises( HmipConnectionError): await hap.async_setup() simple_mock_home.init.side_effect = HmipConnectionError with patch( "homeassistant.components.homematicip_cloud.hap.AsyncHome", return_value=simple_mock_home, ), pytest.raises(ConfigEntryNotReady): await hap.async_setup()
async def test_hap_create_exception(hass, hmip_config_entry): """Mock AsyncHome to execute get_hap.""" hass.config.components.add(HMIPC_DOMAIN) hap = HomematicipHAP(hass, hmip_config_entry) assert hap with patch( "homeassistant.components.homematicip_cloud.hap.AsyncHome.get_current_state", side_effect=Exception, ): assert not await hap.async_setup() with patch( "homeassistant.components.homematicip_cloud.hap.AsyncHome.get_current_state", side_effect=HmipConnectionError, ), pytest.raises(ConfigEntryNotReady): await hap.async_setup()
async def test_hap_setup_works(): """Test a successful setup of a accesspoint.""" hass = Mock() entry = Mock() home = Mock() entry.data = {HMIPC_HAPID: "ABC123", HMIPC_AUTHTOKEN: "123", HMIPC_NAME: "hmip"} hap = HomematicipHAP(hass, entry) with patch.object(hap, "get_hap", return_value=home): assert await hap.async_setup() assert hap.home is home assert len(hass.config_entries.async_forward_entry_setup.mock_calls) == 8 assert hass.config_entries.async_forward_entry_setup.mock_calls[0][1] == ( entry, "alarm_control_panel", ) assert hass.config_entries.async_forward_entry_setup.mock_calls[1][1] == ( entry, "binary_sensor", )