async def test_setup_source(hass): """Check that we register sources correctly.""" platform = MockEntityPlatform(hass) entity_platform = MockEntity(name="Platform Config Source") await platform.async_add_entities([entity_platform]) platform.config_entry = MockConfigEntry() entity_entry = MockEntity(name="Config Entry Source") await platform.async_add_entities([entity_entry]) assert entity.entity_sources(hass) == { "test_domain.platform_config_source": { "custom_component": False, "domain": "test_platform", "source": entity.SOURCE_PLATFORM_CONFIG, }, "test_domain.config_entry_source": { "config_entry": platform.config_entry.entry_id, "custom_component": False, "domain": "test_platform", "source": entity.SOURCE_CONFIG_ENTRY, }, } await platform.async_reset() assert entity.entity_sources(hass) == {}
async def test_polling_disabled_by_config_entry(hass): """Test the polling of only updated entities.""" entity_platform = MockEntityPlatform(hass) entity_platform.config_entry = MockConfigEntry(pref_disable_polling=True) poll_ent = MockEntity(should_poll=True) await entity_platform.async_add_entities([poll_ent]) assert entity_platform._async_unsub_polling is None
async def test_update_entity_require_restart(hass, client): """Test updating entity.""" entity_id = "test_domain.test_platform_1234" config_entry = MockConfigEntry(domain="test_platform") config_entry.add_to_hass(hass) platform = MockEntityPlatform(hass) platform.config_entry = config_entry entity = MockEntity(unique_id="1234") await platform.async_add_entities([entity]) state = hass.states.get(entity_id) assert state is not None # UPDATE DISABLED_BY TO NONE await client.send_json( { "id": 8, "type": "config/entity_registry/update", "entity_id": entity_id, "disabled_by": None, } ) msg = await client.receive_json() assert msg["result"] == { "entity_entry": { "area_id": None, "capabilities": None, "config_entry_id": config_entry.entry_id, "device_class": None, "device_id": None, "disabled_by": None, "entity_category": None, "entity_id": entity_id, "icon": None, "hidden_by": None, "has_entity_name": False, "name": None, "options": {}, "original_device_class": None, "original_icon": None, "original_name": None, "platform": "test_platform", "unique_id": "1234", }, "require_restart": True, }
async def test_enable_entity_disabled_device(hass, client, device_registry): """Test enabling entity of disabled device.""" entity_id = "test_domain.test_platform_1234" config_entry = MockConfigEntry(domain="test_platform") config_entry.add_to_hass(hass) device = device_registry.async_get_or_create( config_entry_id="1234", connections={("ethernet", "12:34:56:78:90:AB:CD:EF")}, identifiers={("bridgeid", "0123")}, manufacturer="manufacturer", model="model", disabled_by=DeviceEntryDisabler.USER, ) device_info = { "connections": {("ethernet", "12:34:56:78:90:AB:CD:EF")}, } platform = MockEntityPlatform(hass) platform.config_entry = config_entry entity = MockEntity(unique_id="1234", device_info=device_info) await platform.async_add_entities([entity]) state = hass.states.get(entity_id) assert state is None entity_reg = async_get_entity_registry(hass) entity_entry = entity_reg.async_get(entity_id) assert entity_entry.config_entry_id == config_entry.entry_id assert entity_entry.device_id == device.id assert entity_entry.disabled_by == RegistryEntryDisabler.DEVICE # UPDATE DISABLED_BY TO NONE await client.send_json( { "id": 8, "type": "config/entity_registry/update", "entity_id": entity_id, "disabled_by": None, } ) msg = await client.receive_json() assert not msg["success"]