Add mqtt common tests for availability (part2) (#89805)

* update test_availability_when_connection_lost

* Adjust test_availability_without_topic

* Update test_default_availability_payload + helper

* Update test_default_availability_list_payload

* Use helper for async_setup_component

* Update test_default_availability_list_*

* Update test_custom_availability_payload
This commit is contained in:
Jan Bouwhuis 2023-03-21 08:20:37 +01:00 committed by GitHub
parent 0303618705
commit 91dbda1ce7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 290 additions and 289 deletions

View file

@ -593,49 +593,48 @@ async def test_attributes_code_text(
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG_CODE])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, hass, mqtt_mock_entry_no_yaml_config, alarm_control_panel.DOMAIN
mqtt_mock_entry_with_yaml_config,
alarm_control_panel.DOMAIN,
DEFAULT_CONFIG_CODE,
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG_CODE])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
alarm_control_panel.DOMAIN, alarm_control_panel.DOMAIN,
DEFAULT_CONFIG_CODE, DEFAULT_CONFIG_CODE,
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
alarm_control_panel.DOMAIN, alarm_control_panel.DOMAIN,
DEFAULT_CONFIG_CODE, DEFAULT_CONFIG_CODE,
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
alarm_control_panel.DOMAIN, alarm_control_panel.DOMAIN,
DEFAULT_CONFIG, DEFAULT_CONFIG,
) )

View file

@ -547,51 +547,41 @@ async def test_invalid_device_class(
assert "Invalid config for [mqtt]: expected BinarySensorDeviceClass" in caplog.text assert "Invalid config for [mqtt]: expected BinarySensorDeviceClass" in caplog.text
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, hass, mqtt_mock_entry_no_yaml_config, binary_sensor.DOMAIN
mqtt_mock_entry_with_yaml_config,
binary_sensor.DOMAIN,
DEFAULT_CONFIG,
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, hass, mqtt_mock_entry_no_yaml_config, binary_sensor.DOMAIN, DEFAULT_CONFIG
mqtt_mock_entry_with_yaml_config,
binary_sensor.DOMAIN,
DEFAULT_CONFIG,
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass, mqtt_mock_entry_no_yaml_config, binary_sensor.DOMAIN, DEFAULT_CONFIG
mqtt_mock_entry_with_yaml_config,
binary_sensor.DOMAIN,
DEFAULT_CONFIG,
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass, mqtt_mock_entry_no_yaml_config, binary_sensor.DOMAIN, DEFAULT_CONFIG
mqtt_mock_entry_with_yaml_config,
binary_sensor.DOMAIN,
DEFAULT_CONFIG,
) )

View file

@ -136,26 +136,28 @@ async def test_command_template(
mqtt_mock.async_publish.reset_mock() mqtt_mock.async_publish.reset_mock()
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, button.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, button.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, button.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, button.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
config = { config = {
@ -167,10 +169,9 @@ async def test_default_availability_payload(
} }
} }
} }
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
button.DOMAIN, button.DOMAIN,
config, config,
True, True,
@ -180,7 +181,7 @@ async def test_default_availability_payload(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
config = { config = {
@ -195,7 +196,7 @@ async def test_custom_availability_payload(
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
button.DOMAIN, button.DOMAIN,
config, config,
True, True,

View file

@ -157,39 +157,41 @@ async def test_camera_b64_encoded_with_availability(
assert body == "grass" assert body == "grass"
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, camera.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, camera.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, camera.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, camera.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, camera.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, camera.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, camera.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, camera.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -1042,39 +1042,41 @@ async def test_set_aux(
assert state.attributes.get("aux_heat") == "off" assert state.attributes.get("aux_heat") == "off"
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, climate.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, climate.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, climate.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, climate.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, climate.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, climate.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, climate.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, climate.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -27,13 +27,17 @@ from homeassistant.const import (
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.generated.mqtt import MQTT from homeassistant.generated.mqtt import MQTT
from homeassistant.helpers import device_registry as dr, entity_registry as er from homeassistant.helpers import (
config_validation as cv,
device_registry as dr,
entity_registry as er,
)
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.setup import async_setup_component from homeassistant.setup import async_setup_component
from tests.common import MockConfigEntry, async_fire_mqtt_message from tests.common import MockConfigEntry, async_fire_mqtt_message
from tests.typing import MqttMockHAClientGenerator, MqttMockPahoClient from tests.typing import MqttMockHAClient, MqttMockHAClientGenerator, MqttMockPahoClient
DEFAULT_CONFIG_DEVICE_INFO_ID = { DEFAULT_CONFIG_DEVICE_INFO_ID = {
"identifiers": ["helloworld"], "identifiers": ["helloworld"],
@ -82,16 +86,46 @@ def help_test_validate_platform_config(
return False return False
async def help_test_availability_when_connection_lost( async def help_setup_component(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry: MqttMockHAClientGenerator | None,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
use_discovery: bool = False,
) -> MqttMockHAClient | None:
"""Help to set up the MQTT component."""
# `async_setup_component` will call `async_setup` and
# after that it will also start the entry `async_start_entry`
# when `async_setup` removed mqtt_mock_entry_with_no_config should be awaited.
if use_discovery:
comp_config = cv.ensure_list(config[mqtt.DOMAIN][domain])
item = 0
assert mqtt_mock_entry is not None
mqtt_mock = await mqtt_mock_entry()
for comp in comp_config:
item += 1
topic = f"homeassistant/{domain}/item_{item}/config"
async_fire_mqtt_message(hass, topic, json.dumps(comp))
else:
await async_setup_component(
hass,
mqtt.DOMAIN,
config,
)
mqtt_mock = None
await hass.async_block_till_done()
return mqtt_mock
async def help_test_availability_when_connection_lost(
hass: HomeAssistant,
mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
domain: str,
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
assert await async_setup_component(hass, mqtt.DOMAIN, config) mqtt_mock = await mqtt_mock_entry_no_yaml_config()
await hass.async_block_till_done() await hass.async_block_till_done()
mqtt_mock = await mqtt_mock_entry_with_yaml_config()
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
assert state and state.state != STATE_UNAVAILABLE assert state and state.state != STATE_UNAVAILABLE
@ -106,15 +140,14 @@ async def help_test_availability_when_connection_lost(
async def help_test_availability_without_topic( async def help_test_availability_without_topic(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
assert "availability_topic" not in config[mqtt.DOMAIN][domain] assert "availability_topic" not in config[mqtt.DOMAIN][domain]
assert await async_setup_component(hass, mqtt.DOMAIN, config) await mqtt_mock_entry_no_yaml_config()
await hass.async_block_till_done() await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
assert state and state.state != STATE_UNAVAILABLE assert state and state.state != STATE_UNAVAILABLE
@ -122,7 +155,7 @@ async def help_test_availability_without_topic(
async def help_test_default_availability_payload( async def help_test_default_availability_payload(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_with_no_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
no_assumed_state: bool = False, no_assumed_state: bool = False,
@ -136,13 +169,8 @@ async def help_test_default_availability_payload(
# Add availability settings to config # Add availability settings to config
config = copy.deepcopy(config) config = copy.deepcopy(config)
config[mqtt.DOMAIN][domain]["availability_topic"] = "availability-topic" config[mqtt.DOMAIN][domain]["availability_topic"] = "availability-topic"
assert await async_setup_component(
hass, await help_setup_component(hass, mqtt_mock_entry_with_no_config, domain, config)
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
assert state and state.state == STATE_UNAVAILABLE assert state and state.state == STATE_UNAVAILABLE
@ -173,7 +201,7 @@ async def help_test_default_availability_payload(
async def help_test_default_availability_list_payload( async def help_test_default_availability_list_payload(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_with_no_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
no_assumed_state: bool = False, no_assumed_state: bool = False,
@ -190,13 +218,7 @@ async def help_test_default_availability_list_payload(
{"topic": "availability-topic1"}, {"topic": "availability-topic1"},
{"topic": "availability-topic2"}, {"topic": "availability-topic2"},
] ]
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_with_no_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
assert state and state.state == STATE_UNAVAILABLE assert state and state.state == STATE_UNAVAILABLE
@ -239,7 +261,7 @@ async def help_test_default_availability_list_payload(
async def help_test_default_availability_list_payload_all( async def help_test_default_availability_list_payload_all(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
no_assumed_state: bool = False, no_assumed_state: bool = False,
@ -257,13 +279,7 @@ async def help_test_default_availability_list_payload_all(
{"topic": "availability-topic1"}, {"topic": "availability-topic1"},
{"topic": "availability-topic2"}, {"topic": "availability-topic2"},
] ]
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_no_yaml_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
assert state and state.state == STATE_UNAVAILABLE assert state and state.state == STATE_UNAVAILABLE
@ -307,7 +323,7 @@ async def help_test_default_availability_list_payload_all(
async def help_test_default_availability_list_payload_any( async def help_test_default_availability_list_payload_any(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
no_assumed_state: bool = False, no_assumed_state: bool = False,
@ -325,13 +341,7 @@ async def help_test_default_availability_list_payload_any(
{"topic": "availability-topic1"}, {"topic": "availability-topic1"},
{"topic": "availability-topic2"}, {"topic": "availability-topic2"},
] ]
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_no_yaml_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
assert state and state.state == STATE_UNAVAILABLE assert state and state.state == STATE_UNAVAILABLE
@ -384,20 +394,17 @@ async def help_test_default_availability_list_single(
{"topic": "availability-topic1"}, {"topic": "availability-topic1"},
] ]
config[mqtt.DOMAIN][domain]["availability_topic"] = "availability-topic" config[mqtt.DOMAIN][domain]["availability_topic"] = "availability-topic"
assert not await async_setup_component( help_test_validate_platform_config(hass, domain, config)
hass,
mqtt.DOMAIN,
config,
)
assert ( assert (
"Invalid config for [mqtt]: two or more values in the same group of exclusion 'availability'" f"Invalid config for [{domain}]: two or more values in the same group of exclusion 'availability'"
in caplog.text in caplog.text
) )
async def help_test_custom_availability_payload( async def help_test_custom_availability_payload(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
no_assumed_state: bool = False, no_assumed_state: bool = False,
@ -413,13 +420,7 @@ async def help_test_custom_availability_payload(
config[mqtt.DOMAIN][domain]["availability_topic"] = "availability-topic" config[mqtt.DOMAIN][domain]["availability_topic"] = "availability-topic"
config[mqtt.DOMAIN][domain]["payload_available"] = "good" config[mqtt.DOMAIN][domain]["payload_available"] = "good"
config[mqtt.DOMAIN][domain]["payload_not_available"] = "nogood" config[mqtt.DOMAIN][domain]["payload_not_available"] = "nogood"
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_no_yaml_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
assert state and state.state == STATE_UNAVAILABLE assert state and state.state == STATE_UNAVAILABLE
@ -528,7 +529,7 @@ async def help_test_discovery_update_availability(
async def help_test_setting_attribute_via_mqtt_json_message( async def help_test_setting_attribute_via_mqtt_json_message(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
) -> None: ) -> None:
@ -539,13 +540,7 @@ async def help_test_setting_attribute_via_mqtt_json_message(
# Add JSON attributes settings to config # Add JSON attributes settings to config
config = copy.deepcopy(config) config = copy.deepcopy(config)
config[mqtt.DOMAIN][domain]["json_attributes_topic"] = "attr-topic" config[mqtt.DOMAIN][domain]["json_attributes_topic"] = "attr-topic"
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_no_yaml_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
async_fire_mqtt_message(hass, "attr-topic", '{ "val": "100" }') async_fire_mqtt_message(hass, "attr-topic", '{ "val": "100" }')
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
@ -588,7 +583,7 @@ async def help_test_setting_blocked_attribute_via_mqtt_json_message(
async def help_test_setting_attribute_with_template( async def help_test_setting_attribute_with_template(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
) -> None: ) -> None:
@ -602,13 +597,7 @@ async def help_test_setting_attribute_with_template(
config[mqtt.DOMAIN][domain][ config[mqtt.DOMAIN][domain][
"json_attributes_template" "json_attributes_template"
] = "{{ value_json['Timer1'] | tojson }}" ] = "{{ value_json['Timer1'] | tojson }}"
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_no_yaml_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
async_fire_mqtt_message( async_fire_mqtt_message(
hass, "attr-topic", json.dumps({"Timer1": {"Arm": 0, "Time": "22:18"}}) hass, "attr-topic", json.dumps({"Timer1": {"Arm": 0, "Time": "22:18"}})
@ -622,7 +611,7 @@ async def help_test_setting_attribute_with_template(
async def help_test_update_with_json_attrs_not_dict( async def help_test_update_with_json_attrs_not_dict(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
caplog: pytest.LogCaptureFixture, caplog: pytest.LogCaptureFixture,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
@ -634,13 +623,7 @@ async def help_test_update_with_json_attrs_not_dict(
# Add JSON attributes settings to config # Add JSON attributes settings to config
config = copy.deepcopy(config) config = copy.deepcopy(config)
config[mqtt.DOMAIN][domain]["json_attributes_topic"] = "attr-topic" config[mqtt.DOMAIN][domain]["json_attributes_topic"] = "attr-topic"
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_no_yaml_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
async_fire_mqtt_message(hass, "attr-topic", '[ "list", "of", "things"]') async_fire_mqtt_message(hass, "attr-topic", '[ "list", "of", "things"]')
state = hass.states.get(f"{domain}.test") state = hass.states.get(f"{domain}.test")
@ -651,7 +634,7 @@ async def help_test_update_with_json_attrs_not_dict(
async def help_test_update_with_json_attrs_bad_json( async def help_test_update_with_json_attrs_bad_json(
hass: HomeAssistant, hass: HomeAssistant,
mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator,
caplog: pytest.LogCaptureFixture, caplog: pytest.LogCaptureFixture,
domain: str, domain: str,
config: ConfigType, config: ConfigType,
@ -663,13 +646,7 @@ async def help_test_update_with_json_attrs_bad_json(
# Add JSON attributes settings to config # Add JSON attributes settings to config
config = copy.deepcopy(config) config = copy.deepcopy(config)
config[mqtt.DOMAIN][domain]["json_attributes_topic"] = "attr-topic" config[mqtt.DOMAIN][domain]["json_attributes_topic"] = "attr-topic"
assert await async_setup_component( await help_setup_component(hass, mqtt_mock_entry_no_yaml_config, domain, config)
hass,
mqtt.DOMAIN,
config,
)
await hass.async_block_till_done()
await mqtt_mock_entry_with_yaml_config()
async_fire_mqtt_message(hass, "attr-topic", "This is not JSON") async_fire_mqtt_message(hass, "attr-topic", "This is not JSON")

View file

@ -2508,39 +2508,41 @@ async def test_find_in_range_altered_inverted(hass: HomeAssistant) -> None:
assert mqtt_cover.find_in_range_from_percent(60, "cover") == 120 assert mqtt_cover.find_in_range_from_percent(60, "cover") == 120
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, cover.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, cover.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, cover.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, cover.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, cover.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, cover.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, cover.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, cover.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -1657,31 +1657,33 @@ async def test_supported_features(
assert state.attributes.get(ATTR_SUPPORTED_FEATURES) == features assert state.attributes.get(ATTR_SUPPORTED_FEATURES) == features
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, fan.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, fan.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, fan.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, fan.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
fan.DOMAIN, fan.DOMAIN,
DEFAULT_CONFIG, DEFAULT_CONFIG,
True, True,
@ -1691,12 +1693,12 @@ async def test_default_availability_payload(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
fan.DOMAIN, fan.DOMAIN,
DEFAULT_CONFIG, DEFAULT_CONFIG,
True, True,

View file

@ -1010,31 +1010,33 @@ async def test_supported_features(
assert state.attributes.get(ATTR_SUPPORTED_FEATURES) == features assert state.attributes.get(ATTR_SUPPORTED_FEATURES) == features
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, humidifier.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, humidifier.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, humidifier.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, humidifier.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
humidifier.DOMAIN, humidifier.DOMAIN,
DEFAULT_CONFIG, DEFAULT_CONFIG,
True, True,
@ -1044,12 +1046,12 @@ async def test_default_availability_payload(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
humidifier.DOMAIN, humidifier.DOMAIN,
DEFAULT_CONFIG, DEFAULT_CONFIG,
True, True,

View file

@ -631,39 +631,41 @@ async def test_missing_fan_speed_template(hass: HomeAssistant) -> None:
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG_2])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG_2])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2
) )

View file

@ -2133,39 +2133,41 @@ async def test_effect(
mqtt_mock.async_publish.assert_called_once_with("test_light/set", "OFF", 0, False) mqtt_mock.async_publish.assert_called_once_with("test_light/set", "OFF", 0, False)
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -1882,39 +1882,41 @@ async def test_invalid_values(
assert state.attributes.get("color_temp") == 100 assert state.attributes.get("color_temp") == 100
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -850,39 +850,41 @@ async def test_invalid_values(
assert state.attributes.get("effect") == "rainbow" assert state.attributes.get("effect") == "rainbow"
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, light.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, light.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -652,39 +652,41 @@ async def test_sending_mqtt_commands_pessimistic(
assert state.state is STATE_LOCKED assert state.state is STATE_LOCKED
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, lock.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, lock.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, lock.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, lock.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, lock.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, lock.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, lock.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, lock.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -445,39 +445,41 @@ async def test_run_number_service_with_command_template(
assert state.state == "32" assert state.state == "32"
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, number.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, number.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, number.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, number.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, number.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, number.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, number.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, number.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -79,26 +79,28 @@ async def test_sending_mqtt_commands(
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, scene.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, scene.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, scene.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, scene.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
config = { config = {
@ -110,10 +112,9 @@ async def test_default_availability_payload(
} }
} }
} }
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
scene.DOMAIN, scene.DOMAIN,
config, config,
True, True,
@ -123,7 +124,7 @@ async def test_default_availability_payload(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
config = { config = {
@ -138,7 +139,7 @@ async def test_custom_availability_payload(
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
scene.DOMAIN, scene.DOMAIN,
config, config,
True, True,

View file

@ -322,39 +322,41 @@ async def test_run_select_service_with_command_template(
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, select.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, select.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, select.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, select.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, select.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, select.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, select.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, select.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -661,57 +661,59 @@ async def test_force_update_enabled(
assert len(events) == 2 assert len(events) == 2
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, sensor.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_list_payload( async def test_default_availability_list_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_list_payload( await help_test_default_availability_list_payload(
hass, mqtt_mock_entry_with_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_list_payload_all( async def test_default_availability_list_payload_all(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_list_payload_all( await help_test_default_availability_list_payload_all(
hass, mqtt_mock_entry_with_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_list_payload_any( async def test_default_availability_list_payload_any(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_list_payload_any( await help_test_default_availability_list_payload_any(
hass, mqtt_mock_entry_with_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG
) )
@ -728,11 +730,11 @@ async def test_default_availability_list_single(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, sensor.DOMAIN, DEFAULT_CONFIG
) )

View file

@ -457,26 +457,28 @@ async def test_filtering_not_supported_attributes_via_state(
assert state3.attributes.get(siren.ATTR_VOLUME_LEVEL) == 0.88 assert state3.attributes.get(siren.ATTR_VOLUME_LEVEL) == 0.88
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, siren.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, siren.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, siren.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, siren.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
config = { config = {
@ -490,10 +492,9 @@ async def test_default_availability_payload(
} }
} }
} }
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
siren.DOMAIN, siren.DOMAIN,
config, config,
True, True,
@ -503,7 +504,7 @@ async def test_default_availability_payload(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
config = { config = {
@ -520,7 +521,7 @@ async def test_custom_availability_payload(
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
siren.DOMAIN, siren.DOMAIN,
config, config,
True, True,

View file

@ -368,39 +368,41 @@ async def test_status_invalid_json(
assert state.state == STATE_UNKNOWN assert state.state == STATE_UNKNOWN
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG_2])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG_2])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2 hass, mqtt_mock_entry_no_yaml_config, vacuum.DOMAIN, DEFAULT_CONFIG_2
) )

View file

@ -219,26 +219,28 @@ async def test_controlling_state_via_topic_and_json_message(
assert state.state == STATE_UNKNOWN assert state.state == STATE_UNKNOWN
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, switch.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, switch.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, switch.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, switch.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
config = { config = {
@ -252,10 +254,9 @@ async def test_default_availability_payload(
} }
} }
} }
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
switch.DOMAIN, switch.DOMAIN,
config, config,
True, True,
@ -265,7 +266,7 @@ async def test_default_availability_payload(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
config = { config = {
@ -282,7 +283,7 @@ async def test_custom_availability_payload(
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
switch.DOMAIN, switch.DOMAIN,
config, config,
True, True,

View file

@ -313,26 +313,28 @@ async def test_set_text_validation(
assert state.state == "no" assert state.state == "no"
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, text.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, text.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, text.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, text.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
config = { config = {
@ -344,10 +346,9 @@ async def test_default_availability_payload(
} }
} }
} }
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
text.DOMAIN, text.DOMAIN,
config, config,
True, True,
@ -357,7 +358,7 @@ async def test_default_availability_payload(
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
config = { config = {
@ -372,7 +373,7 @@ async def test_custom_availability_payload(
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, hass,
mqtt_mock_entry_with_yaml_config, mqtt_mock_entry_no_yaml_config,
text.DOMAIN, text.DOMAIN,
config, config,
True, True,

View file

@ -428,39 +428,41 @@ async def test_run_install_service(
mqtt_mock.async_publish.assert_called_once_with(command_topic, "install", 0, False) mqtt_mock.async_publish.assert_called_once_with(command_topic, "install", 0, False)
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_when_connection_lost( async def test_availability_when_connection_lost(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability after MQTT disconnection.""" """Test availability after MQTT disconnection."""
await help_test_availability_when_connection_lost( await help_test_availability_when_connection_lost(
hass, mqtt_mock_entry_with_yaml_config, update.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, update.DOMAIN
) )
@pytest.mark.parametrize("hass_config", [DEFAULT_CONFIG])
async def test_availability_without_topic( async def test_availability_without_topic(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability without defined availability topic.""" """Test availability without defined availability topic."""
await help_test_availability_without_topic( await help_test_availability_without_topic(
hass, mqtt_mock_entry_with_yaml_config, update.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, update.DOMAIN, DEFAULT_CONFIG
) )
async def test_default_availability_payload( async def test_default_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by default payload with defined topic.""" """Test availability by default payload with defined topic."""
await help_test_default_availability_payload( await help_test_default_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, update.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, update.DOMAIN, DEFAULT_CONFIG
) )
async def test_custom_availability_payload( async def test_custom_availability_payload(
hass: HomeAssistant, mqtt_mock_entry_with_yaml_config: MqttMockHAClientGenerator hass: HomeAssistant, mqtt_mock_entry_no_yaml_config: MqttMockHAClientGenerator
) -> None: ) -> None:
"""Test availability by custom payload with defined topic.""" """Test availability by custom payload with defined topic."""
await help_test_custom_availability_payload( await help_test_custom_availability_payload(
hass, mqtt_mock_entry_with_yaml_config, update.DOMAIN, DEFAULT_CONFIG hass, mqtt_mock_entry_no_yaml_config, update.DOMAIN, DEFAULT_CONFIG
) )