Allow MQTT entities to be disabled by default (#48284)
* Allow MQTT entities to be disabled by default * Tweak
This commit is contained in:
parent
0805467c47
commit
8ad3c65645
4 changed files with 53 additions and 1 deletions
|
@ -1146,3 +1146,39 @@ async def help_test_entity_debug_info_update_entity_id(hass, mqtt_mock, domain,
|
|||
assert (
|
||||
f"{domain}.test" not in hass.data[debug_info.DATA_MQTT_DEBUG_INFO]["entities"]
|
||||
)
|
||||
|
||||
|
||||
async def help_test_entity_disabled_by_default(hass, mqtt_mock, domain, config):
|
||||
"""Test device registry remove."""
|
||||
# Add device settings to config
|
||||
config = copy.deepcopy(config[domain])
|
||||
config["device"] = copy.deepcopy(DEFAULT_CONFIG_DEVICE_INFO_ID)
|
||||
config["enabled_by_default"] = False
|
||||
config["unique_id"] = "veryunique1"
|
||||
|
||||
dev_registry = dr.async_get(hass)
|
||||
ent_registry = er.async_get(hass)
|
||||
|
||||
# Discover a disabled entity
|
||||
data = json.dumps(config)
|
||||
async_fire_mqtt_message(hass, f"homeassistant/{domain}/bla1/config", data)
|
||||
await hass.async_block_till_done()
|
||||
entity_id = ent_registry.async_get_entity_id(domain, mqtt.DOMAIN, "veryunique1")
|
||||
assert not hass.states.get(entity_id)
|
||||
assert dev_registry.async_get_device({("mqtt", "helloworld")})
|
||||
|
||||
# Discover an enabled entity, tied to the same device
|
||||
config["enabled_by_default"] = True
|
||||
config["unique_id"] = "veryunique2"
|
||||
data = json.dumps(config)
|
||||
async_fire_mqtt_message(hass, f"homeassistant/{domain}/bla2/config", data)
|
||||
await hass.async_block_till_done()
|
||||
entity_id = ent_registry.async_get_entity_id(domain, mqtt.DOMAIN, "veryunique2")
|
||||
assert hass.states.get(entity_id)
|
||||
|
||||
# Remove the enabled entity, both entities and the device should be removed
|
||||
async_fire_mqtt_message(hass, f"homeassistant/{domain}/bla2/config", "")
|
||||
await hass.async_block_till_done()
|
||||
assert not ent_registry.async_get_entity_id(domain, mqtt.DOMAIN, "veryunique1")
|
||||
assert not ent_registry.async_get_entity_id(domain, mqtt.DOMAIN, "veryunique2")
|
||||
assert not dev_registry.async_get_device({("mqtt", "helloworld")})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue