diff --git a/homeassistant/components/esphome/__init__.py b/homeassistant/components/esphome/__init__.py index 0b3a7522845..23b4044fc9e 100644 --- a/homeassistant/components/esphome/__init__.py +++ b/homeassistant/components/esphome/__init__.py @@ -40,8 +40,7 @@ from homeassistant.helpers.template import Template from homeassistant.helpers.typing import ConfigType, HomeAssistantType # Import config flow so that it's added to the registry -from .config_flow import EsphomeFlowHandler # noqa: F401 -from .entry_data import DATA_KEY, RuntimeEntryData +from .entry_data import RuntimeEntryData DOMAIN = "esphome" _LOGGER = logging.getLogger(__name__) @@ -62,7 +61,7 @@ async def async_setup(hass: HomeAssistantType, config: ConfigType) -> bool: async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool: """Set up the esphome component.""" - hass.data.setdefault(DATA_KEY, {}) + hass.data.setdefault(DOMAIN, {}) host = entry.data[CONF_HOST] port = entry.data[CONF_PORT] @@ -84,7 +83,7 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool store = Store( hass, STORAGE_VERSION, f"esphome.{entry.entry_id}", encoder=JSONEncoder ) - entry_data = hass.data[DATA_KEY][entry.entry_id] = RuntimeEntryData( + entry_data = hass.data[DOMAIN][entry.entry_id] = RuntimeEntryData( client=cli, entry_id=entry.entry_id, store=store ) @@ -363,7 +362,7 @@ async def _cleanup_instance( hass: HomeAssistantType, entry: ConfigEntry ) -> RuntimeEntryData: """Cleanup the esphome client if it exists.""" - data: RuntimeEntryData = hass.data[DATA_KEY].pop(entry.entry_id) + data: RuntimeEntryData = hass.data[DOMAIN].pop(entry.entry_id) if data.reconnect_task is not None: data.reconnect_task.cancel() for disconnect_cb in data.disconnect_callbacks: @@ -545,7 +544,7 @@ class EsphomeBaseEntity(Entity): @property def _entry_data(self) -> RuntimeEntryData: - return self.hass.data[DATA_KEY][self._entry_id] + return self.hass.data[DOMAIN][self._entry_id] @property def _static_info(self) -> EntityInfo: diff --git a/homeassistant/components/esphome/config_flow.py b/homeassistant/components/esphome/config_flow.py index 1d1fc421bb8..34b168cdd8c 100644 --- a/homeassistant/components/esphome/config_flow.py +++ b/homeassistant/components/esphome/config_flow.py @@ -11,9 +11,8 @@ from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PASSWORD, CONF_PORT from homeassistant.core import callback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from .entry_data import DATA_KEY, RuntimeEntryData - -DOMAIN = "esphome" +from . import DOMAIN +from .entry_data import RuntimeEntryData class EsphomeFlowHandler(ConfigFlow, domain=DOMAIN): @@ -107,9 +106,9 @@ class EsphomeFlowHandler(ConfigFlow, domain=DOMAIN): ]: # Is this address or IP address already configured? already_configured = True - elif entry.entry_id in self.hass.data.get(DATA_KEY, {}): + elif entry.entry_id in self.hass.data.get(DOMAIN, {}): # Does a config entry with this name already exist? - data: RuntimeEntryData = self.hass.data[DATA_KEY][entry.entry_id] + data: RuntimeEntryData = self.hass.data[DOMAIN][entry.entry_id] # Node names are unique in the network if data.device_info is not None: diff --git a/homeassistant/components/esphome/entry_data.py b/homeassistant/components/esphome/entry_data.py index 54da1ed5562..58b20d18e12 100644 --- a/homeassistant/components/esphome/entry_data.py +++ b/homeassistant/components/esphome/entry_data.py @@ -29,8 +29,6 @@ from homeassistant.helpers.typing import HomeAssistantType if TYPE_CHECKING: from . import APIClient -DATA_KEY = "esphome" - SAVE_DELAY = 120 # Mapping from ESPHome info type to HA platform diff --git a/tests/components/esphome/test_config_flow.py b/tests/components/esphome/test_config_flow.py index f3afce0d43b..233255c1a89 100644 --- a/tests/components/esphome/test_config_flow.py +++ b/tests/components/esphome/test_config_flow.py @@ -4,7 +4,7 @@ from unittest.mock import AsyncMock, MagicMock, patch import pytest -from homeassistant.components.esphome import DATA_KEY +from homeassistant.components.esphome import DOMAIN from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_PORT from homeassistant.data_entry_flow import ( RESULT_TYPE_ABORT, @@ -207,7 +207,7 @@ async def test_discovery_initiation(hass, mock_client): async def test_discovery_already_configured_hostname(hass, mock_client): """Test discovery aborts if already configured via hostname.""" entry = MockConfigEntry( - domain="esphome", + domain=DOMAIN, data={CONF_HOST: "test8266.local", CONF_PORT: 6053, CONF_PASSWORD: ""}, ) @@ -232,7 +232,7 @@ async def test_discovery_already_configured_hostname(hass, mock_client): async def test_discovery_already_configured_ip(hass, mock_client): """Test discovery aborts if already configured via static IP.""" entry = MockConfigEntry( - domain="esphome", + domain=DOMAIN, data={CONF_HOST: "192.168.43.183", CONF_PORT: 6053, CONF_PASSWORD: ""}, ) @@ -257,14 +257,14 @@ async def test_discovery_already_configured_ip(hass, mock_client): async def test_discovery_already_configured_name(hass, mock_client): """Test discovery aborts if already configured via name.""" entry = MockConfigEntry( - domain="esphome", + domain=DOMAIN, data={CONF_HOST: "192.168.43.183", CONF_PORT: 6053, CONF_PASSWORD: ""}, ) entry.add_to_hass(hass) mock_entry_data = MagicMock() mock_entry_data.device_info.name = "test8266" - hass.data[DATA_KEY] = {entry.entry_id: mock_entry_data} + hass.data[DOMAIN] = {entry.entry_id: mock_entry_data} service_info = { "host": "192.168.43.184", @@ -310,7 +310,7 @@ async def test_discovery_duplicate_data(hass, mock_client): async def test_discovery_updates_unique_id(hass, mock_client): """Test a duplicate discovery host aborts and updates existing entry.""" entry = MockConfigEntry( - domain="esphome", + domain=DOMAIN, data={CONF_HOST: "192.168.43.183", CONF_PORT: 6053, CONF_PASSWORD: ""}, )