"""The tests for the Legacy Mqtt vacuum platform.""" # The legacy schema for MQTT vacuum was deprecated with HA Core 2023.8.0 # and was removed with HA Core 2024.2.0 # cleanup is planned with HA Core 2025.2 import json import pytest from homeassistant.components import mqtt, vacuum from homeassistant.core import HomeAssistant from homeassistant.helpers.typing import DiscoveryInfoType from tests.common import async_fire_mqtt_message from tests.typing import MqttMockHAClientGenerator DEFAULT_CONFIG = {mqtt.DOMAIN: {vacuum.DOMAIN: {"name": "test"}}} @pytest.mark.parametrize( ("hass_config", "removed"), [ ({mqtt.DOMAIN: {vacuum.DOMAIN: {"name": "test", "schema": "legacy"}}}, True), ({mqtt.DOMAIN: {vacuum.DOMAIN: {"name": "test"}}}, False), ({mqtt.DOMAIN: {vacuum.DOMAIN: {"name": "test", "schema": "state"}}}, False), ], ) async def test_removed_support_yaml( hass: HomeAssistant, mqtt_mock_entry: MqttMockHAClientGenerator, caplog: pytest.LogCaptureFixture, removed: bool, ) -> None: """Test that the removed support validation for the legacy schema works.""" assert await mqtt_mock_entry() entity = hass.states.get("vacuum.test") if removed: assert entity is None assert ( "The support for the `legacy` MQTT " "vacuum schema has been removed" in caplog.text ) else: assert entity is not None @pytest.mark.parametrize( ("config", "removed"), [ ({"name": "test", "schema": "legacy"}, True), ({"name": "test"}, False), ({"name": "test", "schema": "state"}, False), ], ) async def test_removed_support_discovery( hass: HomeAssistant, mqtt_mock_entry: MqttMockHAClientGenerator, caplog: pytest.LogCaptureFixture, config: DiscoveryInfoType, removed: bool, ) -> None: """Test that the removed support validation for the legacy schema works.""" assert await mqtt_mock_entry() config_payload = json.dumps(config) async_fire_mqtt_message(hass, "homeassistant/vacuum/test/config", config_payload) await hass.async_block_till_done() entity = hass.states.get("vacuum.test") if removed: assert entity is None assert ( "The support for the `legacy` MQTT " "vacuum schema has been removed" in caplog.text ) else: assert entity is not None