diff --git a/tests/components/mqtt/test_config_flow.py b/tests/components/mqtt/test_config_flow.py index 9e86a3554d6..c8ffe7909eb 100644 --- a/tests/components/mqtt/test_config_flow.py +++ b/tests/components/mqtt/test_config_flow.py @@ -458,10 +458,13 @@ async def test_option_flow( mqtt_mock = await mqtt_mock_entry() mock_try_connection.return_value = True config_entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + }, + ) mqtt_mock.async_connect.reset_mock() @@ -586,14 +589,18 @@ async def test_bad_certificate( mock_try_connection.return_value = True config_entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] # Add at least one advanced option to get the full form - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - mqtt.CONF_CLIENT_ID: "custom1234", - mqtt.CONF_KEEPALIVE: 60, - mqtt.CONF_TLS_INSECURE: False, - mqtt.CONF_PROTOCOL: "3.1.1", - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + mqtt.CONF_CLIENT_ID: "custom1234", + mqtt.CONF_KEEPALIVE: 60, + mqtt.CONF_TLS_INSECURE: False, + mqtt.CONF_PROTOCOL: "3.1.1", + }, + ) + await hass.async_block_till_done() mqtt_mock.async_connect.reset_mock() @@ -659,11 +666,14 @@ async def test_keepalive_validation( mock_try_connection.return_value = True config_entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] # Add at least one advanced option to get the full form - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - mqtt.CONF_CLIENT_ID: "custom1234", - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + mqtt.CONF_CLIENT_ID: "custom1234", + }, + ) mqtt_mock.async_connect.reset_mock() @@ -695,10 +705,15 @@ async def test_disable_birth_will( mqtt_mock = await mqtt_mock_entry() mock_try_connection.return_value = True config_entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + }, + ) + await hass.async_block_till_done() + mock_reload_after_entry_update.reset_mock() mqtt_mock.async_connect.reset_mock() @@ -766,13 +781,17 @@ async def test_invalid_discovery_prefix( mqtt_mock = await mqtt_mock_entry() mock_try_connection.return_value = True config_entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - mqtt.CONF_DISCOVERY: True, - mqtt.CONF_DISCOVERY_PREFIX: "homeassistant", - } - + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + mqtt.CONF_DISCOVERY: True, + mqtt.CONF_DISCOVERY_PREFIX: "homeassistant", + }, + ) + await hass.async_block_till_done() + mock_reload_after_entry_update.reset_mock() mqtt_mock.async_connect.reset_mock() result = await hass.config_entries.options.async_init(config_entry.entry_id) @@ -844,25 +863,28 @@ async def test_option_flow_default_suggested_values( """Test config flow options has default/suggested values.""" await mqtt_mock_entry() config_entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - mqtt.CONF_USERNAME: "user", - mqtt.CONF_PASSWORD: "pass", - mqtt.CONF_DISCOVERY: True, - mqtt.CONF_BIRTH_MESSAGE: { - mqtt.ATTR_TOPIC: "ha_state/online", - mqtt.ATTR_PAYLOAD: "online", - mqtt.ATTR_QOS: 1, - mqtt.ATTR_RETAIN: True, + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + mqtt.CONF_USERNAME: "user", + mqtt.CONF_PASSWORD: "pass", + mqtt.CONF_DISCOVERY: True, + mqtt.CONF_BIRTH_MESSAGE: { + mqtt.ATTR_TOPIC: "ha_state/online", + mqtt.ATTR_PAYLOAD: "online", + mqtt.ATTR_QOS: 1, + mqtt.ATTR_RETAIN: True, + }, + mqtt.CONF_WILL_MESSAGE: { + mqtt.ATTR_TOPIC: "ha_state/offline", + mqtt.ATTR_PAYLOAD: "offline", + mqtt.ATTR_QOS: 2, + mqtt.ATTR_RETAIN: False, + }, }, - mqtt.CONF_WILL_MESSAGE: { - mqtt.ATTR_TOPIC: "ha_state/offline", - mqtt.ATTR_PAYLOAD: "offline", - mqtt.ATTR_QOS: 2, - mqtt.ATTR_RETAIN: False, - }, - } + ) # Test default/suggested values from config result = await hass.config_entries.options.async_init(config_entry.entry_id) @@ -1010,10 +1032,13 @@ async def test_skipping_advanced_options( mock_try_connection.return_value = True config_entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] # Initiate with a basic setup - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + }, + ) mqtt_mock.async_connect.reset_mock() @@ -1036,10 +1061,13 @@ async def test_options_user_connection_fails( """Test if connection cannot be made.""" config_entry = MockConfigEntry(domain=mqtt.DOMAIN) config_entry.add_to_hass(hass) - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + }, + ) result = await hass.config_entries.options.async_init(config_entry.entry_id) assert result["type"] == "form" @@ -1067,10 +1095,13 @@ async def test_options_bad_birth_message_fails( """Test bad birth message.""" config_entry = MockConfigEntry(domain=mqtt.DOMAIN) config_entry.add_to_hass(hass) - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + }, + ) mock_try_connection.return_value = True @@ -1105,10 +1136,13 @@ async def test_options_bad_will_message_fails( """Test bad will message.""" config_entry = MockConfigEntry(domain=mqtt.DOMAIN) config_entry.add_to_hass(hass) - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + }, + ) mock_try_connection.return_value = True @@ -1150,33 +1184,37 @@ async def test_try_connection_with_advanced_parameters( """Test config flow with advanced parameters from config.""" config_entry = MockConfigEntry(domain=mqtt.DOMAIN) config_entry.add_to_hass(hass) - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - mqtt.CONF_USERNAME: "user", - mqtt.CONF_PASSWORD: "pass", - mqtt.CONF_TRANSPORT: "websockets", - mqtt.CONF_CERTIFICATE: "auto", - mqtt.CONF_TLS_INSECURE: True, - mqtt.CONF_CLIENT_CERT: MOCK_CLIENT_CERT.decode(encoding="utf-8)"), - mqtt.CONF_CLIENT_KEY: MOCK_CLIENT_KEY.decode(encoding="utf-8"), - mqtt.CONF_WS_PATH: "/path/", - mqtt.CONF_WS_HEADERS: {"h1": "v1", "h2": "v2"}, - mqtt.CONF_KEEPALIVE: 30, - mqtt.CONF_DISCOVERY: True, - mqtt.CONF_BIRTH_MESSAGE: { - mqtt.ATTR_TOPIC: "ha_state/online", - mqtt.ATTR_PAYLOAD: "online", - mqtt.ATTR_QOS: 1, - mqtt.ATTR_RETAIN: True, + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + mqtt.CONF_USERNAME: "user", + mqtt.CONF_PASSWORD: "pass", + mqtt.CONF_TRANSPORT: "websockets", + mqtt.CONF_CERTIFICATE: "auto", + mqtt.CONF_TLS_INSECURE: True, + mqtt.CONF_CLIENT_CERT: MOCK_CLIENT_CERT.decode(encoding="utf-8)"), + mqtt.CONF_CLIENT_KEY: MOCK_CLIENT_KEY.decode(encoding="utf-8"), + mqtt.CONF_WS_PATH: "/path/", + mqtt.CONF_WS_HEADERS: {"h1": "v1", "h2": "v2"}, + mqtt.CONF_KEEPALIVE: 30, + mqtt.CONF_DISCOVERY: True, + mqtt.CONF_BIRTH_MESSAGE: { + mqtt.ATTR_TOPIC: "ha_state/online", + mqtt.ATTR_PAYLOAD: "online", + mqtt.ATTR_QOS: 1, + mqtt.ATTR_RETAIN: True, + }, + mqtt.CONF_WILL_MESSAGE: { + mqtt.ATTR_TOPIC: "ha_state/offline", + mqtt.ATTR_PAYLOAD: "offline", + mqtt.ATTR_QOS: 2, + mqtt.ATTR_RETAIN: False, + }, }, - mqtt.CONF_WILL_MESSAGE: { - mqtt.ATTR_TOPIC: "ha_state/offline", - mqtt.ATTR_PAYLOAD: "offline", - mqtt.ATTR_QOS: 2, - mqtt.ATTR_RETAIN: False, - }, - } + ) + # Test default/suggested values from config result = await hass.config_entries.options.async_init(config_entry.entry_id) assert result["type"] == data_entry_flow.FlowResultType.FORM @@ -1265,10 +1303,13 @@ async def test_setup_with_advanced_settings( config_entry = MockConfigEntry(domain=mqtt.DOMAIN) config_entry.add_to_hass(hass) - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + }, + ) mock_try_connection.return_value = True @@ -1422,13 +1463,16 @@ async def test_change_websockets_transport_to_tcp( """Test option flow setup with websockets transport settings.""" config_entry = MockConfigEntry(domain=mqtt.DOMAIN) config_entry.add_to_hass(hass) - config_entry.data = { - mqtt.CONF_BROKER: "test-broker", - mqtt.CONF_PORT: 1234, - mqtt.CONF_TRANSPORT: "websockets", - mqtt.CONF_WS_HEADERS: {"header_1": "custom_header1"}, - mqtt.CONF_WS_PATH: "/some_path", - } + hass.config_entries.async_update_entry( + config_entry, + data={ + mqtt.CONF_BROKER: "test-broker", + mqtt.CONF_PORT: 1234, + mqtt.CONF_TRANSPORT: "websockets", + mqtt.CONF_WS_HEADERS: {"header_1": "custom_header1"}, + mqtt.CONF_WS_PATH: "/some_path", + }, + ) mock_try_connection.return_value = True diff --git a/tests/components/mqtt/test_init.py b/tests/components/mqtt/test_init.py index b5b7a74840e..1cfe2a2b29f 100644 --- a/tests/components/mqtt/test_init.py +++ b/tests/components/mqtt/test_init.py @@ -2638,7 +2638,9 @@ async def test_default_entry_setting_are_applied( # Config entry data is incomplete but valid according the schema entry = hass.config_entries.async_entries(mqtt.DOMAIN)[0] - entry.data = {"broker": "test-broker", "port": 1234} + hass.config_entries.async_update_entry( + entry, data={"broker": "test-broker", "port": 1234} + ) await mqtt_mock_entry() await hass.async_block_till_done()