From 2cf3057ff17c5c7971987b75a3450aac1f48b26b Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 5 Apr 2022 15:43:10 +0200 Subject: [PATCH] Add basic type hints to utility_meter (#69325) Co-authored-by: Diogo Gomes --- homeassistant/components/utility_meter/select.py | 15 ++++++++++++++- homeassistant/components/utility_meter/sensor.py | 5 ++++- tests/components/utility_meter/test_init.py | 2 ++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/utility_meter/select.py b/homeassistant/components/utility_meter/select.py index 1f39b7f7c16..b78eec5c4f9 100644 --- a/homeassistant/components/utility_meter/select.py +++ b/homeassistant/components/utility_meter/select.py @@ -20,6 +20,7 @@ from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import async_track_state_change_event from homeassistant.helpers.restore_state import RestoreEntity +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from .const import ( ATTR_TARIFF, @@ -50,8 +51,20 @@ async def async_setup_entry( async_add_entities([tariff_select]) -async def async_setup_platform(hass, conf, async_add_entities, discovery_info=None): +async def async_setup_platform( + hass: HomeAssistant, + conf: ConfigType, + async_add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the utility meter select.""" + if discovery_info is None: + _LOGGER.error( + "This platform is not available to configure " + "from 'select:' in configuration.yaml" + ) + return + legacy_component = hass.data[DATA_LEGACY_COMPONENT] async_add_entities( [ diff --git a/homeassistant/components/utility_meter/sensor.py b/homeassistant/components/utility_meter/sensor.py index adf95c83d56..f523f244ea2 100644 --- a/homeassistant/components/utility_meter/sensor.py +++ b/homeassistant/components/utility_meter/sensor.py @@ -176,7 +176,10 @@ async def async_setup_platform( ) -> None: """Set up the utility meter sensor.""" if discovery_info is None: - _LOGGER.error("This platform is only available through discovery") + _LOGGER.error( + "This platform is not available to configure " + "from 'sensor:' in configuration.yaml" + ) return meters = [] diff --git a/tests/components/utility_meter/test_init.py b/tests/components/utility_meter/test_init.py index 853fd827f0a..02330bc00a4 100644 --- a/tests/components/utility_meter/test_init.py +++ b/tests/components/utility_meter/test_init.py @@ -17,6 +17,7 @@ from homeassistant.components.utility_meter.const import ( SERVICE_SELECT_TARIFF, SIGNAL_RESET_METER, ) +import homeassistant.components.utility_meter.select as um_select import homeassistant.components.utility_meter.sensor as um_sensor from homeassistant.const import ( ATTR_ENTITY_ID, @@ -380,6 +381,7 @@ async def test_bad_cron(hass, legacy_patchable_time): async def test_setup_missing_discovery(hass): """Test setup with configuration missing discovery_info.""" + assert not await um_select.async_setup_platform(hass, {CONF_PLATFORM: DOMAIN}, None) assert not await um_sensor.async_setup_platform(hass, {CONF_PLATFORM: DOMAIN}, None)