Cleanup removed MQTT broker settings (#116633)

pull/116653/head
Jan Bouwhuis 2024-05-02 20:37:21 +02:00 committed by GitHub
parent ecc431e231
commit bedd5c1cef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 120 additions and 168 deletions

View File

@ -13,16 +13,7 @@ import voluptuous as vol
from homeassistant import config as conf_util
from homeassistant.components import websocket_api
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_CLIENT_ID,
CONF_DISCOVERY,
CONF_PASSWORD,
CONF_PAYLOAD,
CONF_PORT,
CONF_PROTOCOL,
CONF_USERNAME,
SERVICE_RELOAD,
)
from homeassistant.const import CONF_DISCOVERY, CONF_PAYLOAD, SERVICE_RELOAD
from homeassistant.core import HassJob, HomeAssistant, ServiceCall, callback
from homeassistant.exceptions import (
ConfigValidationError,
@ -122,45 +113,6 @@ CONNECTION_SUCCESS = "connection_success"
CONNECTION_FAILED = "connection_failed"
CONNECTION_FAILED_RECOVERABLE = "connection_failed_recoverable"
CONFIG_ENTRY_CONFIG_KEYS = [
CONF_BIRTH_MESSAGE,
CONF_BROKER,
CONF_CERTIFICATE,
CONF_CLIENT_ID,
CONF_CLIENT_CERT,
CONF_CLIENT_KEY,
CONF_DISCOVERY,
CONF_DISCOVERY_PREFIX,
CONF_KEEPALIVE,
CONF_PASSWORD,
CONF_PORT,
CONF_PROTOCOL,
CONF_TLS_INSECURE,
CONF_TRANSPORT,
CONF_WS_PATH,
CONF_WS_HEADERS,
CONF_USERNAME,
CONF_WILL_MESSAGE,
]
REMOVED_OPTIONS = vol.All(
cv.removed(CONF_BIRTH_MESSAGE), # Removed in HA Core 2023.4
cv.removed(CONF_BROKER), # Removed in HA Core 2023.4
cv.removed(CONF_CERTIFICATE), # Removed in HA Core 2023.4
cv.removed(CONF_CLIENT_ID), # Removed in HA Core 2023.4
cv.removed(CONF_CLIENT_CERT), # Removed in HA Core 2023.4
cv.removed(CONF_CLIENT_KEY), # Removed in HA Core 2023.4
cv.removed(CONF_DISCOVERY), # Removed in HA Core 2022.3
cv.removed(CONF_DISCOVERY_PREFIX), # Removed in HA Core 2023.4
cv.removed(CONF_KEEPALIVE), # Removed in HA Core 2023.4
cv.removed(CONF_PASSWORD), # Removed in HA Core 2023.4
cv.removed(CONF_PORT), # Removed in HA Core 2023.4
cv.removed(CONF_PROTOCOL), # Removed in HA Core 2023.4
cv.removed(CONF_TLS_INSECURE), # Removed in HA Core 2023.4
cv.removed(CONF_USERNAME), # Removed in HA Core 2023.4
cv.removed(CONF_WILL_MESSAGE), # Removed in HA Core 2023.4
)
# We accept 2 schemes for configuring manual MQTT items
#
# Preferred style:
@ -187,7 +139,6 @@ CONFIG_SCHEMA = vol.Schema(
DOMAIN: vol.All(
cv.ensure_list,
cv.remove_falsy,
[REMOVED_OPTIONS],
[CONFIG_SCHEMA_BASE],
)
},

View File

@ -15,6 +15,13 @@ from homeassistant import config_entries
from homeassistant.components import mqtt
from homeassistant.components.hassio import HassioServiceInfo
from homeassistant.components.mqtt.config_flow import PWD_NOT_CHANGED
from homeassistant.const import (
CONF_CLIENT_ID,
CONF_PASSWORD,
CONF_PORT,
CONF_PROTOCOL,
CONF_USERNAME,
)
from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResultType
@ -230,8 +237,8 @@ async def test_user_v5_connection_works(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_PROTOCOL: "5",
CONF_PORT: 2345,
CONF_PROTOCOL: "5",
},
)
assert result["type"] is FlowResultType.CREATE_ENTRY
@ -468,7 +475,7 @@ async def test_option_flow(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
},
)
@ -482,9 +489,9 @@ async def test_option_flow(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "pass",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "pass",
},
)
assert result["type"] is FlowResultType.FORM
@ -516,9 +523,9 @@ async def test_option_flow(
assert result["data"] == {}
assert config_entry.data == {
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "pass",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "pass",
mqtt.CONF_DISCOVERY: True,
mqtt.CONF_DISCOVERY_PREFIX: "homeassistant",
mqtt.CONF_BIRTH_MESSAGE: {
@ -565,7 +572,7 @@ async def test_bad_certificate(
file_id = mock_process_uploaded_file.file_id
test_input = {
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
CONF_PORT: 2345,
mqtt.CONF_CERTIFICATE: file_id[mqtt.CONF_CERTIFICATE],
mqtt.CONF_CLIENT_CERT: file_id[mqtt.CONF_CLIENT_CERT],
mqtt.CONF_CLIENT_KEY: file_id[mqtt.CONF_CLIENT_KEY],
@ -599,11 +606,11 @@ async def test_bad_certificate(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
mqtt.CONF_CLIENT_ID: "custom1234",
CONF_PORT: 1234,
CONF_CLIENT_ID: "custom1234",
mqtt.CONF_KEEPALIVE: 60,
mqtt.CONF_TLS_INSECURE: False,
mqtt.CONF_PROTOCOL: "3.1.1",
CONF_PROTOCOL: "3.1.1",
},
)
await hass.async_block_till_done()
@ -618,13 +625,13 @@ async def test_bad_certificate(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
CONF_PORT: 2345,
mqtt.CONF_KEEPALIVE: 60,
"set_client_cert": set_client_cert,
"set_ca_cert": set_ca_cert,
mqtt.CONF_TLS_INSECURE: tls_insecure,
mqtt.CONF_PROTOCOL: "3.1.1",
mqtt.CONF_CLIENT_ID: "custom1234",
CONF_PROTOCOL: "3.1.1",
CONF_CLIENT_ID: "custom1234",
},
)
test_input["set_client_cert"] = set_client_cert
@ -664,7 +671,7 @@ async def test_keepalive_validation(
test_input = {
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
CONF_PORT: 2345,
mqtt.CONF_KEEPALIVE: input_value,
}
@ -676,8 +683,8 @@ async def test_keepalive_validation(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
mqtt.CONF_CLIENT_ID: "custom1234",
CONF_PORT: 1234,
CONF_CLIENT_ID: "custom1234",
},
)
@ -715,7 +722,7 @@ async def test_disable_birth_will(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
},
)
await hass.async_block_till_done()
@ -731,9 +738,9 @@ async def test_disable_birth_will(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "pass",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "pass",
},
)
assert result["type"] is FlowResultType.FORM
@ -763,9 +770,9 @@ async def test_disable_birth_will(
assert result["data"] == {}
assert config_entry.data == {
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "pass",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "pass",
mqtt.CONF_DISCOVERY: True,
mqtt.CONF_DISCOVERY_PREFIX: "homeassistant",
mqtt.CONF_BIRTH_MESSAGE: {},
@ -791,7 +798,7 @@ async def test_invalid_discovery_prefix(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
mqtt.CONF_DISCOVERY: True,
mqtt.CONF_DISCOVERY_PREFIX: "homeassistant",
},
@ -808,7 +815,7 @@ async def test_invalid_discovery_prefix(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
CONF_PORT: 2345,
},
)
assert result["type"] is FlowResultType.FORM
@ -829,7 +836,7 @@ async def test_invalid_discovery_prefix(
assert result["errors"]["base"] == "bad_discovery_prefix"
assert config_entry.data == {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
mqtt.CONF_DISCOVERY: True,
mqtt.CONF_DISCOVERY_PREFIX: "homeassistant",
}
@ -873,9 +880,9 @@ async def test_option_flow_default_suggested_values(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "pass",
CONF_PORT: 1234,
CONF_USERNAME: "user",
CONF_PASSWORD: "pass",
mqtt.CONF_DISCOVERY: True,
mqtt.CONF_BIRTH_MESSAGE: {
mqtt.ATTR_TOPIC: "ha_state/online",
@ -898,11 +905,11 @@ async def test_option_flow_default_suggested_values(
assert result["step_id"] == "broker"
defaults = {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
}
suggested = {
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: PWD_NOT_CHANGED,
CONF_USERNAME: "user",
CONF_PASSWORD: PWD_NOT_CHANGED,
}
for key, value in defaults.items():
assert get_default(result["data_schema"].schema, key) == value
@ -913,9 +920,9 @@ async def test_option_flow_default_suggested_values(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "us3r",
mqtt.CONF_PASSWORD: "p4ss",
CONF_PORT: 2345,
CONF_USERNAME: "us3r",
CONF_PASSWORD: "p4ss",
},
)
assert result["type"] is FlowResultType.FORM
@ -960,11 +967,11 @@ async def test_option_flow_default_suggested_values(
assert result["step_id"] == "broker"
defaults = {
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
CONF_PORT: 2345,
}
suggested = {
mqtt.CONF_USERNAME: "us3r",
mqtt.CONF_PASSWORD: PWD_NOT_CHANGED,
CONF_USERNAME: "us3r",
CONF_PASSWORD: PWD_NOT_CHANGED,
}
for key, value in defaults.items():
assert get_default(result["data_schema"].schema, key) == value
@ -973,7 +980,7 @@ async def test_option_flow_default_suggested_values(
result = await hass.config_entries.options.async_configure(
result["flow_id"],
user_input={mqtt.CONF_BROKER: "another-broker", mqtt.CONF_PORT: 2345},
user_input={mqtt.CONF_BROKER: "another-broker", CONF_PORT: 2345},
)
assert result["type"] is FlowResultType.FORM
assert result["step_id"] == "options"
@ -1030,7 +1037,7 @@ async def test_skipping_advanced_options(
test_input = {
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
CONF_PORT: 2345,
"advanced_options": advanced_options,
}
@ -1042,7 +1049,7 @@ async def test_skipping_advanced_options(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
},
)
@ -1067,24 +1074,24 @@ async def test_skipping_advanced_options(
(
{
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_USERNAME: "username",
mqtt.CONF_PASSWORD: "verysecret",
CONF_USERNAME: "username",
CONF_PASSWORD: "verysecret",
},
{
mqtt.CONF_USERNAME: "username",
mqtt.CONF_PASSWORD: "newpassword",
CONF_USERNAME: "username",
CONF_PASSWORD: "newpassword",
},
"newpassword",
),
(
{
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_USERNAME: "username",
mqtt.CONF_PASSWORD: "verysecret",
CONF_USERNAME: "username",
CONF_PASSWORD: "verysecret",
},
{
mqtt.CONF_USERNAME: "username",
mqtt.CONF_PASSWORD: PWD_NOT_CHANGED,
CONF_USERNAME: "username",
CONF_PASSWORD: PWD_NOT_CHANGED,
},
"verysecret",
),
@ -1153,7 +1160,7 @@ async def test_step_reauth(
assert result["reason"] == "reauth_successful"
assert len(hass.config_entries.async_entries()) == 1
assert config_entry.data.get(mqtt.CONF_PASSWORD) == new_password
assert config_entry.data.get(CONF_PASSWORD) == new_password
await hass.async_block_till_done()
@ -1167,7 +1174,7 @@ async def test_options_user_connection_fails(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
},
)
result = await hass.config_entries.options.async_init(config_entry.entry_id)
@ -1176,7 +1183,7 @@ async def test_options_user_connection_fails(
mock_try_connection_time_out.reset_mock()
result = await hass.config_entries.options.async_configure(
result["flow_id"],
user_input={mqtt.CONF_BROKER: "bad-broker", mqtt.CONF_PORT: 2345},
user_input={mqtt.CONF_BROKER: "bad-broker", CONF_PORT: 2345},
)
assert result["type"] is FlowResultType.FORM
@ -1187,7 +1194,7 @@ async def test_options_user_connection_fails(
# Check config entry did not update
assert config_entry.data == {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
}
@ -1201,7 +1208,7 @@ async def test_options_bad_birth_message_fails(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
},
)
@ -1212,7 +1219,7 @@ async def test_options_bad_birth_message_fails(
result = await hass.config_entries.options.async_configure(
result["flow_id"],
user_input={mqtt.CONF_BROKER: "another-broker", mqtt.CONF_PORT: 2345},
user_input={mqtt.CONF_BROKER: "another-broker", CONF_PORT: 2345},
)
assert result["type"] is FlowResultType.FORM
@ -1228,7 +1235,7 @@ async def test_options_bad_birth_message_fails(
# Check config entry did not update
assert config_entry.data == {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
}
@ -1242,7 +1249,7 @@ async def test_options_bad_will_message_fails(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
},
)
@ -1253,7 +1260,7 @@ async def test_options_bad_will_message_fails(
result = await hass.config_entries.options.async_configure(
result["flow_id"],
user_input={mqtt.CONF_BROKER: "another-broker", mqtt.CONF_PORT: 2345},
user_input={mqtt.CONF_BROKER: "another-broker", CONF_PORT: 2345},
)
assert result["type"] is FlowResultType.FORM
@ -1269,7 +1276,7 @@ async def test_options_bad_will_message_fails(
# Check config entry did not update
assert config_entry.data == {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
}
@ -1290,9 +1297,9 @@ async def test_try_connection_with_advanced_parameters(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "pass",
CONF_PORT: 1234,
CONF_USERNAME: "user",
CONF_PASSWORD: "pass",
mqtt.CONF_TRANSPORT: "websockets",
mqtt.CONF_CERTIFICATE: "auto",
mqtt.CONF_TLS_INSECURE: True,
@ -1323,15 +1330,15 @@ async def test_try_connection_with_advanced_parameters(
assert result["step_id"] == "broker"
defaults = {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
"set_client_cert": True,
"set_ca_cert": "auto",
}
suggested = {
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: PWD_NOT_CHANGED,
CONF_USERNAME: "user",
CONF_PASSWORD: PWD_NOT_CHANGED,
mqtt.CONF_TLS_INSECURE: True,
mqtt.CONF_PROTOCOL: "3.1.1",
CONF_PROTOCOL: "3.1.1",
mqtt.CONF_TRANSPORT: "websockets",
mqtt.CONF_WS_PATH: "/path/",
mqtt.CONF_WS_HEADERS: '{"h1":"v1","h2":"v2"}',
@ -1348,9 +1355,9 @@ async def test_try_connection_with_advanced_parameters(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "another-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "us3r",
mqtt.CONF_PASSWORD: "p4ss",
CONF_PORT: 2345,
CONF_USERNAME: "us3r",
CONF_PASSWORD: "p4ss",
"set_ca_cert": "auto",
"set_client_cert": True,
mqtt.CONF_TLS_INSECURE: True,
@ -1409,7 +1416,7 @@ async def test_setup_with_advanced_settings(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
},
)
@ -1427,21 +1434,21 @@ async def test_setup_with_advanced_settings(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "secret",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "secret",
"advanced_options": True,
},
)
assert result["type"] is FlowResultType.FORM
assert result["step_id"] == "broker"
assert "advanced_options" not in result["data_schema"].schema
assert result["data_schema"].schema[mqtt.CONF_CLIENT_ID]
assert result["data_schema"].schema[CONF_CLIENT_ID]
assert result["data_schema"].schema[mqtt.CONF_KEEPALIVE]
assert result["data_schema"].schema["set_client_cert"]
assert result["data_schema"].schema["set_ca_cert"]
assert result["data_schema"].schema[mqtt.CONF_TLS_INSECURE]
assert result["data_schema"].schema[mqtt.CONF_PROTOCOL]
assert result["data_schema"].schema[CONF_PROTOCOL]
assert result["data_schema"].schema[mqtt.CONF_TRANSPORT]
assert mqtt.CONF_CLIENT_CERT not in result["data_schema"].schema
assert mqtt.CONF_CLIENT_KEY not in result["data_schema"].schema
@ -1451,26 +1458,26 @@ async def test_setup_with_advanced_settings(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "secret",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "secret",
mqtt.CONF_KEEPALIVE: 30,
"set_ca_cert": "auto",
"set_client_cert": True,
mqtt.CONF_TLS_INSECURE: True,
mqtt.CONF_PROTOCOL: "3.1.1",
CONF_PROTOCOL: "3.1.1",
mqtt.CONF_TRANSPORT: "websockets",
},
)
assert result["type"] is FlowResultType.FORM
assert result["step_id"] == "broker"
assert "advanced_options" not in result["data_schema"].schema
assert result["data_schema"].schema[mqtt.CONF_CLIENT_ID]
assert result["data_schema"].schema[CONF_CLIENT_ID]
assert result["data_schema"].schema[mqtt.CONF_KEEPALIVE]
assert result["data_schema"].schema["set_client_cert"]
assert result["data_schema"].schema["set_ca_cert"]
assert result["data_schema"].schema[mqtt.CONF_TLS_INSECURE]
assert result["data_schema"].schema[mqtt.CONF_PROTOCOL]
assert result["data_schema"].schema[CONF_PROTOCOL]
assert result["data_schema"].schema[mqtt.CONF_CLIENT_CERT]
assert result["data_schema"].schema[mqtt.CONF_CLIENT_KEY]
assert result["data_schema"].schema[mqtt.CONF_TRANSPORT]
@ -1482,9 +1489,9 @@ async def test_setup_with_advanced_settings(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "secret",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "secret",
mqtt.CONF_KEEPALIVE: 30,
"set_ca_cert": "auto",
"set_client_cert": True,
@ -1507,9 +1514,9 @@ async def test_setup_with_advanced_settings(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "secret",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "secret",
mqtt.CONF_KEEPALIVE: 30,
"set_ca_cert": "auto",
"set_client_cert": True,
@ -1537,9 +1544,9 @@ async def test_setup_with_advanced_settings(
# Check config entry result
assert config_entry.data == {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 2345,
mqtt.CONF_USERNAME: "user",
mqtt.CONF_PASSWORD: "secret",
CONF_PORT: 2345,
CONF_USERNAME: "user",
CONF_PASSWORD: "secret",
mqtt.CONF_KEEPALIVE: 30,
mqtt.CONF_CLIENT_CERT: "## mock client certificate file ##",
mqtt.CONF_CLIENT_KEY: "## mock key file ##",
@ -1569,7 +1576,7 @@ async def test_change_websockets_transport_to_tcp(
config_entry,
data={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
mqtt.CONF_TRANSPORT: "websockets",
mqtt.CONF_WS_HEADERS: {"header_1": "custom_header1"},
mqtt.CONF_WS_PATH: "/some_path",
@ -1590,7 +1597,7 @@ async def test_change_websockets_transport_to_tcp(
result["flow_id"],
user_input={
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
mqtt.CONF_TRANSPORT: "tcp",
mqtt.CONF_WS_HEADERS: '{"header_1": "custom_header1"}',
mqtt.CONF_WS_PATH: "/some_path",
@ -1611,7 +1618,7 @@ async def test_change_websockets_transport_to_tcp(
# Check config entry result
assert config_entry.data == {
mqtt.CONF_BROKER: "test-broker",
mqtt.CONF_PORT: 1234,
CONF_PORT: 1234,
mqtt.CONF_TRANSPORT: "tcp",
mqtt.CONF_DISCOVERY: True,
mqtt.CONF_DISCOVERY_PREFIX: "homeassistant_test",

View File

@ -6,6 +6,7 @@ from unittest.mock import ANY
import pytest
from homeassistant.components import mqtt
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
@ -143,8 +144,8 @@ async def test_entry_diagnostics(
{
mqtt.CONF_BROKER: "mock-broker",
mqtt.CONF_BIRTH_MESSAGE: {},
mqtt.CONF_PASSWORD: "hunter2",
mqtt.CONF_USERNAME: "my_user",
CONF_PASSWORD: "hunter2",
CONF_USERNAME: "my_user",
}
],
)

View File

@ -1338,22 +1338,6 @@ async def test_discovery_expansion_without_encoding_and_value_template_2(
ABBREVIATIONS_WHITE_LIST = [
# MQTT client/server/trigger settings
"CONF_BIRTH_MESSAGE",
"CONF_BROKER",
"CONF_CERTIFICATE",
"CONF_CLIENT_CERT",
"CONF_CLIENT_ID",
"CONF_CLIENT_KEY",
"CONF_DISCOVERY",
"CONF_DISCOVERY_ID",
"CONF_DISCOVERY_PREFIX",
"CONF_EMBEDDED",
"CONF_KEEPALIVE",
"CONF_TLS_INSECURE",
"CONF_TRANSPORT",
"CONF_WILL_MESSAGE",
"CONF_WS_PATH",
"CONF_WS_HEADERS",
# Integration info
"CONF_SUPPORT_URL",
# Undocumented device configuration
@ -1373,6 +1357,14 @@ ABBREVIATIONS_WHITE_LIST = [
"CONF_WHITE_VALUE",
]
EXCLUDED_MODULES = {
"const.py",
"config.py",
"config_flow.py",
"device_trigger.py",
"trigger.py",
}
async def test_missing_discover_abbreviations(
hass: HomeAssistant,
@ -1383,7 +1375,7 @@ async def test_missing_discover_abbreviations(
missing = []
regex = re.compile(r"(CONF_[a-zA-Z\d_]*) *= *[\'\"]([a-zA-Z\d_]*)[\'\"]")
for fil in Path(mqtt.__file__).parent.rglob("*.py"):
if fil.name == "trigger.py":
if fil.name in EXCLUDED_MODULES:
continue
with open(fil, encoding="utf-8") as file:
matches = re.findall(regex, file.read())

View File

@ -31,6 +31,7 @@ from homeassistant.components.sensor import SensorDeviceClass
from homeassistant.config_entries import ConfigEntryDisabler, ConfigEntryState
from homeassistant.const import (
ATTR_ASSUMED_STATE,
CONF_PROTOCOL,
EVENT_HOMEASSISTANT_STARTED,
EVENT_HOMEASSISTANT_STOP,
SERVICE_RELOAD,
@ -2221,21 +2222,21 @@ async def test_setup_manual_mqtt_with_invalid_config(
(
{
mqtt.CONF_BROKER: "mock-broker",
mqtt.CONF_PROTOCOL: "3.1",
CONF_PROTOCOL: "3.1",
},
3,
),
(
{
mqtt.CONF_BROKER: "mock-broker",
mqtt.CONF_PROTOCOL: "3.1.1",
CONF_PROTOCOL: "3.1.1",
},
4,
),
(
{
mqtt.CONF_BROKER: "mock-broker",
mqtt.CONF_PROTOCOL: "5",
CONF_PROTOCOL: "5",
},
5,
),