From fa28ee1f14dc3883a4b199a910093441ad37c2e7 Mon Sep 17 00:00:00 2001 From: Diogo Gomes Date: Wed, 13 Apr 2022 18:19:34 +0100 Subject: [PATCH] Remove deprecated unit configuration option from integration integration (#69157) --- .../components/integration/sensor.py | 9 ++-- tests/components/integration/test_sensor.py | 50 ++++++++++++++----- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/homeassistant/components/integration/sensor.py b/homeassistant/components/integration/sensor.py index 15993bba502..40229404288 100644 --- a/homeassistant/components/integration/sensor.py +++ b/homeassistant/components/integration/sensor.py @@ -65,7 +65,7 @@ UNIT_TIME = { DEFAULT_ROUND = 3 PLATFORM_SCHEMA = vol.All( - cv.deprecated(CONF_UNIT_OF_MEASUREMENT), + cv.removed(CONF_UNIT_OF_MEASUREMENT), PLATFORM_SCHEMA.extend( { vol.Optional(CONF_NAME): cv.string, @@ -74,7 +74,7 @@ PLATFORM_SCHEMA = vol.All( vol.Optional(CONF_ROUND_DIGITS, default=DEFAULT_ROUND): vol.Coerce(int), vol.Optional(CONF_UNIT_PREFIX, default=None): vol.In(UNIT_PREFIXES), vol.Optional(CONF_UNIT_TIME, default=TIME_HOURS): vol.In(UNIT_TIME), - vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string, + vol.Remove(CONF_UNIT_OF_MEASUREMENT): cv.string, vol.Optional(CONF_METHOD, default=METHOD_TRAPEZOIDAL): vol.In( INTEGRATION_METHODS ), @@ -105,7 +105,6 @@ async def async_setup_entry( round_digits=int(config_entry.options[CONF_ROUND_DIGITS]), source_entity=source_entity_id, unique_id=config_entry.entry_id, - unit_of_measurement=None, unit_prefix=unit_prefix, unit_time=config_entry.options[CONF_UNIT_TIME], ) @@ -126,7 +125,6 @@ async def async_setup_platform( round_digits=config[CONF_ROUND_DIGITS], source_entity=config[CONF_SOURCE_SENSOR], unique_id=config.get(CONF_UNIQUE_ID), - unit_of_measurement=config.get(CONF_UNIT_OF_MEASUREMENT), unit_prefix=config[CONF_UNIT_PREFIX], unit_time=config[CONF_UNIT_TIME], ) @@ -145,7 +143,6 @@ class IntegrationSensor(RestoreEntity, SensorEntity): round_digits: int, source_entity: str, unique_id: str | None, - unit_of_measurement: str | None, unit_prefix: str | None, unit_time: str, ) -> None: @@ -160,7 +157,7 @@ class IntegrationSensor(RestoreEntity, SensorEntity): self._unit_template = ( f"{'' if unit_prefix is None else unit_prefix}{{}}{unit_time}" ) - self._unit_of_measurement = unit_of_measurement + self._unit_of_measurement = None self._unit_prefix = UNIT_PREFIXES[unit_prefix] self._unit_time = UNIT_TIME[unit_time] self._attr_state_class = SensorStateClass.TOTAL diff --git a/tests/components/integration/test_sensor.py b/tests/components/integration/test_sensor.py index 6317dd6f6b0..90c9e6f0fbc 100644 --- a/tests/components/integration/test_sensor.py +++ b/tests/components/integration/test_sensor.py @@ -4,8 +4,10 @@ from unittest.mock import patch from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass from homeassistant.const import ( + ATTR_UNIT_OF_MEASUREMENT, ENERGY_KILO_WATT_HOUR, ENERGY_WATT_HOUR, + POWER_KILO_WATT, POWER_WATT, STATE_UNKNOWN, TIME_SECONDS, @@ -24,7 +26,6 @@ async def test_state(hass) -> None: "platform": "integration", "name": "integration", "source": "sensor.power", - "unit": ENERGY_KILO_WATT_HOUR, "round": 2, } } @@ -34,7 +35,7 @@ async def test_state(hass) -> None: assert await async_setup_component(hass, "sensor", config) entity_id = config["sensor"]["source"] - hass.states.async_set(entity_id, 1, {}) + hass.states.async_set(entity_id, 1, {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}) await hass.async_block_till_done() state = hass.states.get("sensor.integration") @@ -45,7 +46,13 @@ async def test_state(hass) -> None: future_now = dt_util.utcnow() + timedelta(seconds=3600) with patch("homeassistant.util.dt.utcnow", return_value=future_now): hass.states.async_set( - entity_id, 1, {"device_class": SensorDeviceClass.POWER}, force_update=True + entity_id, + 1, + { + "device_class": SensorDeviceClass.POWER, + ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT, + }, + force_update=True, ) await hass.async_block_till_done() @@ -137,7 +144,6 @@ async def test_trapezoidal(hass): "platform": "integration", "name": "integration", "source": "sensor.power", - "unit": ENERGY_KILO_WATT_HOUR, "round": 2, } } @@ -152,7 +158,12 @@ async def test_trapezoidal(hass): for time, value in [(20, 10), (30, 30), (40, 5), (50, 0)]: now = dt_util.utcnow() + timedelta(minutes=time) with patch("homeassistant.util.dt.utcnow", return_value=now): - hass.states.async_set(entity_id, value, {}, force_update=True) + hass.states.async_set( + entity_id, + value, + {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}, + force_update=True, + ) await hass.async_block_till_done() state = hass.states.get("sensor.integration") @@ -171,7 +182,6 @@ async def test_left(hass): "name": "integration", "method": "left", "source": "sensor.power", - "unit": ENERGY_KILO_WATT_HOUR, "round": 2, } } @@ -179,14 +189,19 @@ async def test_left(hass): assert await async_setup_component(hass, "sensor", config) entity_id = config["sensor"]["source"] - hass.states.async_set(entity_id, 0, {}) + hass.states.async_set(entity_id, 0, {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}) await hass.async_block_till_done() # Testing a power sensor with non-monotonic intervals and values for time, value in [(20, 10), (30, 30), (40, 5), (50, 0)]: now = dt_util.utcnow() + timedelta(minutes=time) with patch("homeassistant.util.dt.utcnow", return_value=now): - hass.states.async_set(entity_id, value, {}, force_update=True) + hass.states.async_set( + entity_id, + value, + {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}, + force_update=True, + ) await hass.async_block_till_done() state = hass.states.get("sensor.integration") @@ -205,7 +220,6 @@ async def test_right(hass): "name": "integration", "method": "right", "source": "sensor.power", - "unit": ENERGY_KILO_WATT_HOUR, "round": 2, } } @@ -213,14 +227,19 @@ async def test_right(hass): assert await async_setup_component(hass, "sensor", config) entity_id = config["sensor"]["source"] - hass.states.async_set(entity_id, 0, {}) + hass.states.async_set(entity_id, 0, {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}) await hass.async_block_till_done() # Testing a power sensor with non-monotonic intervals and values for time, value in [(20, 10), (30, 30), (40, 5), (50, 0)]: now = dt_util.utcnow() + timedelta(minutes=time) with patch("homeassistant.util.dt.utcnow", return_value=now): - hass.states.async_set(entity_id, value, {}, force_update=True) + hass.states.async_set( + entity_id, + value, + {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}, + force_update=True, + ) await hass.async_block_till_done() state = hass.states.get("sensor.integration") @@ -280,12 +299,17 @@ async def test_suffix(hass): assert await async_setup_component(hass, "sensor", config) entity_id = config["sensor"]["source"] - hass.states.async_set(entity_id, 1000, {}) + hass.states.async_set(entity_id, 1000, {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}) await hass.async_block_till_done() now = dt_util.utcnow() + timedelta(seconds=10) with patch("homeassistant.util.dt.utcnow", return_value=now): - hass.states.async_set(entity_id, 1000, {}, force_update=True) + hass.states.async_set( + entity_id, + 1000, + {ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT}, + force_update=True, + ) await hass.async_block_till_done() state = hass.states.get("sensor.integration")