Suppress MQTT discovery updates without changes (#38568)
This commit is contained in:
parent
896bdbff8f
commit
4ed1f8023b
18 changed files with 266 additions and 31 deletions
|
@ -19,6 +19,7 @@ from .test_common import (
|
|||
help_test_discovery_removal,
|
||||
help_test_discovery_update,
|
||||
help_test_discovery_update_attr,
|
||||
help_test_discovery_update_unchanged,
|
||||
help_test_entity_debug_info_message,
|
||||
help_test_entity_device_info_remove,
|
||||
help_test_entity_device_info_update,
|
||||
|
@ -33,6 +34,7 @@ from .test_common import (
|
|||
help_test_update_with_json_attrs_not_dict,
|
||||
)
|
||||
|
||||
from tests.async_mock import patch
|
||||
from tests.common import async_fire_mqtt_message
|
||||
from tests.components.fan import common
|
||||
|
||||
|
@ -689,22 +691,33 @@ async def test_unique_id(hass, mqtt_mock):
|
|||
|
||||
async def test_discovery_removal_fan(hass, mqtt_mock, caplog):
|
||||
"""Test removal of discovered fan."""
|
||||
data = '{ "name": "test",' ' "command_topic": "test_topic" }'
|
||||
data = '{ "name": "test", "command_topic": "test_topic" }'
|
||||
await help_test_discovery_removal(hass, mqtt_mock, caplog, fan.DOMAIN, data)
|
||||
|
||||
|
||||
async def test_discovery_update_fan(hass, mqtt_mock, caplog):
|
||||
"""Test update of discovered fan."""
|
||||
data1 = '{ "name": "Beer",' ' "command_topic": "test_topic" }'
|
||||
data2 = '{ "name": "Milk",' ' "command_topic": "test_topic" }'
|
||||
data1 = '{ "name": "Beer", "command_topic": "test_topic" }'
|
||||
data2 = '{ "name": "Milk", "command_topic": "test_topic" }'
|
||||
await help_test_discovery_update(hass, mqtt_mock, caplog, fan.DOMAIN, data1, data2)
|
||||
|
||||
|
||||
async def test_discovery_update_unchanged_fan(hass, mqtt_mock, caplog):
|
||||
"""Test update of discovered fan."""
|
||||
data1 = '{ "name": "Beer", "command_topic": "test_topic" }'
|
||||
with patch(
|
||||
"homeassistant.components.mqtt.fan.MqttFan.discovery_update"
|
||||
) as discovery_update:
|
||||
await help_test_discovery_update_unchanged(
|
||||
hass, mqtt_mock, caplog, fan.DOMAIN, data1, discovery_update
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.no_fail_on_log_exception
|
||||
async def test_discovery_broken(hass, mqtt_mock, caplog):
|
||||
"""Test handling of bad discovery message."""
|
||||
data1 = '{ "name": "Beer" }'
|
||||
data2 = '{ "name": "Milk",' ' "command_topic": "test_topic" }'
|
||||
data2 = '{ "name": "Milk", "command_topic": "test_topic" }'
|
||||
await help_test_discovery_broken(hass, mqtt_mock, caplog, fan.DOMAIN, data1, data2)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue