diff --git a/homeassistant/const.py b/homeassistant/const.py index 1f0bc7bdc30..f5d6dd5b4a9 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -9,7 +9,6 @@ from typing import TYPE_CHECKING, Final from .generated.entity_platforms import EntityPlatforms from .helpers.deprecation import ( DeprecatedConstantEnum, - EnumWithDeprecatedMembers, all_with_deprecated_constants, check_if_deprecated_constant, dir_with_deprecated_constants, @@ -704,35 +703,13 @@ class UnitOfMass(StrEnum): STONES = "st" -class UnitOfConductivity( - StrEnum, - metaclass=EnumWithDeprecatedMembers, - deprecated={ - "SIEMENS": ("UnitOfConductivity.SIEMENS_PER_CM", "2025.11.0"), - "MICROSIEMENS": ("UnitOfConductivity.MICROSIEMENS_PER_CM", "2025.11.0"), - "MILLISIEMENS": ("UnitOfConductivity.MILLISIEMENS_PER_CM", "2025.11.0"), - }, -): +class UnitOfConductivity(StrEnum): """Conductivity units.""" SIEMENS_PER_CM = "S/cm" MICROSIEMENS_PER_CM = "μS/cm" MILLISIEMENS_PER_CM = "mS/cm" - # Deprecated aliases - SIEMENS = "S/cm" - """Deprecated: Please use UnitOfConductivity.SIEMENS_PER_CM""" - MICROSIEMENS = "μS/cm" - """Deprecated: Please use UnitOfConductivity.MICROSIEMENS_PER_CM""" - MILLISIEMENS = "mS/cm" - """Deprecated: Please use UnitOfConductivity.MILLISIEMENS_PER_CM""" - - -_DEPRECATED_CONDUCTIVITY: Final = DeprecatedConstantEnum( - UnitOfConductivity.MICROSIEMENS_PER_CM, - "2025.11", -) -"""Deprecated: please use UnitOfConductivity.MICROSIEMENS_PER_CM""" # Light units LIGHT_LUX: Final = "lx" diff --git a/tests/components/plant/test_init.py b/tests/components/plant/test_init.py index 122ac3b75d1..c4640dbc3de 100644 --- a/tests/components/plant/test_init.py +++ b/tests/components/plant/test_init.py @@ -80,7 +80,9 @@ async def test_low_battery(hass: HomeAssistant) -> None: async def test_initial_states(hass: HomeAssistant) -> None: """Test plant initialises attributes if sensor already exists.""" hass.states.async_set( - MOISTURE_ENTITY, 5, {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS} + MOISTURE_ENTITY, + 5, + {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS_PER_CM}, ) plant_name = "some_plant" assert await async_setup_component( @@ -101,7 +103,9 @@ async def test_update_states(hass: HomeAssistant) -> None: hass, plant.DOMAIN, {plant.DOMAIN: {plant_name: GOOD_CONFIG}} ) hass.states.async_set( - MOISTURE_ENTITY, 5, {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS} + MOISTURE_ENTITY, + 5, + {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS_PER_CM}, ) await hass.async_block_till_done() state = hass.states.get(f"plant.{plant_name}") @@ -121,7 +125,7 @@ async def test_unavailable_state(hass: HomeAssistant) -> None: hass.states.async_set( MOISTURE_ENTITY, STATE_UNAVAILABLE, - {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS}, + {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS_PER_CM}, ) await hass.async_block_till_done() state = hass.states.get(f"plant.{plant_name}") @@ -139,7 +143,9 @@ async def test_state_problem_if_unavailable(hass: HomeAssistant) -> None: hass, plant.DOMAIN, {plant.DOMAIN: {plant_name: GOOD_CONFIG}} ) hass.states.async_set( - MOISTURE_ENTITY, 42, {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS} + MOISTURE_ENTITY, + 42, + {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS_PER_CM}, ) await hass.async_block_till_done() state = hass.states.get(f"plant.{plant_name}") @@ -148,7 +154,7 @@ async def test_state_problem_if_unavailable(hass: HomeAssistant) -> None: hass.states.async_set( MOISTURE_ENTITY, STATE_UNAVAILABLE, - {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS}, + {ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS_PER_CM}, ) await hass.async_block_till_done() state = hass.states.get(f"plant.{plant_name}") diff --git a/tests/components/sensor/test_init.py b/tests/components/sensor/test_init.py index 60eda1b9d64..594e0103428 100644 --- a/tests/components/sensor/test_init.py +++ b/tests/components/sensor/test_init.py @@ -1785,7 +1785,7 @@ async def test_unit_conversion_priority_suggested_unit_change_2( UnitOfBloodGlucoseConcentration.MILLIGRAMS_PER_DECILITER, 0, ), - (SensorDeviceClass.CONDUCTIVITY, UnitOfConductivity.MICROSIEMENS, 1), + (SensorDeviceClass.CONDUCTIVITY, UnitOfConductivity.MICROSIEMENS_PER_CM, 1), (SensorDeviceClass.CURRENT, UnitOfElectricCurrent.MILLIAMPERE, 0), (SensorDeviceClass.DATA_RATE, UnitOfDataRate.KILOBITS_PER_SECOND, 0), (SensorDeviceClass.DATA_SIZE, UnitOfInformation.KILOBITS, 0), diff --git a/tests/test_const.py b/tests/test_const.py index 426e3c598a6..10fc5241b9e 100644 --- a/tests/test_const.py +++ b/tests/test_const.py @@ -1,19 +1,12 @@ """Test const module.""" from enum import Enum -import logging -import sys -from unittest.mock import Mock, patch import pytest from homeassistant import const -from .common import ( - extract_stack_to_frame, - help_test_all, - import_and_test_deprecated_constant, -) +from .common import help_test_all, import_and_test_deprecated_constant def _create_tuples( @@ -48,78 +41,3 @@ def test_deprecated_constant_name_changes( replacement, breaks_in_version, ) - - -def test_deprecated_unit_of_conductivity_alias() -> None: - """Test UnitOfConductivity deprecation.""" - - # Test the deprecated members are aliases - assert set(const.UnitOfConductivity) == {"S/cm", "μS/cm", "mS/cm"} - - -def test_deprecated_unit_of_conductivity_members( - caplog: pytest.LogCaptureFixture, -) -> None: - """Test UnitOfConductivity deprecation.""" - - module_name = "config.custom_components.hue.light" - filename = f"/home/paulus/{module_name.replace('.', '/')}.py" - - with ( - patch.dict(sys.modules, {module_name: Mock(__file__=filename)}), - patch( - "homeassistant.helpers.frame.linecache.getline", - return_value="await session.close()", - ), - patch( - "homeassistant.helpers.frame.get_current_frame", - return_value=extract_stack_to_frame( - [ - Mock( - filename="/home/paulus/homeassistant/core.py", - lineno="23", - line="do_something()", - ), - Mock( - filename=filename, - lineno="23", - line="await session.close()", - ), - Mock( - filename="/home/paulus/aiohue/lights.py", - lineno="2", - line="something()", - ), - ] - ), - ), - ): - const.UnitOfConductivity.SIEMENS # noqa: B018 - const.UnitOfConductivity.MICROSIEMENS # noqa: B018 - const.UnitOfConductivity.MILLISIEMENS # noqa: B018 - - assert len(caplog.record_tuples) == 3 - - def deprecation_message(member: str, replacement: str) -> str: - return ( - f"The deprecated enum member UnitOfConductivity.{member} was used from hue. " - "It will be removed in HA Core 2025.11.0. Use UnitOfConductivity." - f"{replacement} instead, please report it to the author of the 'hue' custom" - " integration" - ) - - assert ( - const.__name__, - logging.WARNING, - deprecation_message("SIEMENS", "SIEMENS_PER_CM"), - ) in caplog.record_tuples - assert ( - const.__name__, - logging.WARNING, - deprecation_message("MICROSIEMENS", "MICROSIEMENS_PER_CM"), - ) in caplog.record_tuples - assert ( - const.__name__, - logging.WARNING, - deprecation_message("MILLISIEMENS", "MILLISIEMENS_PER_CM"), - ) in caplog.record_tuples diff --git a/tests/util/test_unit_conversion.py b/tests/util/test_unit_conversion.py index d9377779b68..7b7c3752729 100644 --- a/tests/util/test_unit_conversion.py +++ b/tests/util/test_unit_conversion.py @@ -281,48 +281,6 @@ _CONVERTED_VALUE: dict[ ), ], ConductivityConverter: [ - # Deprecated to deprecated - (5, UnitOfConductivity.SIEMENS, 5e3, UnitOfConductivity.MILLISIEMENS), - (5, UnitOfConductivity.SIEMENS, 5e6, UnitOfConductivity.MICROSIEMENS), - (5, UnitOfConductivity.MILLISIEMENS, 5e3, UnitOfConductivity.MICROSIEMENS), - (5, UnitOfConductivity.MILLISIEMENS, 5e-3, UnitOfConductivity.SIEMENS), - (5e6, UnitOfConductivity.MICROSIEMENS, 5e3, UnitOfConductivity.MILLISIEMENS), - (5e6, UnitOfConductivity.MICROSIEMENS, 5, UnitOfConductivity.SIEMENS), - # Deprecated to new - (5, UnitOfConductivity.SIEMENS, 5e3, UnitOfConductivity.MILLISIEMENS_PER_CM), - (5, UnitOfConductivity.SIEMENS, 5e6, UnitOfConductivity.MICROSIEMENS_PER_CM), - ( - 5, - UnitOfConductivity.MILLISIEMENS, - 5e3, - UnitOfConductivity.MICROSIEMENS_PER_CM, - ), - (5, UnitOfConductivity.MILLISIEMENS, 5e-3, UnitOfConductivity.SIEMENS_PER_CM), - ( - 5e6, - UnitOfConductivity.MICROSIEMENS, - 5e3, - UnitOfConductivity.MILLISIEMENS_PER_CM, - ), - (5e6, UnitOfConductivity.MICROSIEMENS, 5, UnitOfConductivity.SIEMENS_PER_CM), - # New to deprecated - (5, UnitOfConductivity.SIEMENS_PER_CM, 5e3, UnitOfConductivity.MILLISIEMENS), - (5, UnitOfConductivity.SIEMENS_PER_CM, 5e6, UnitOfConductivity.MICROSIEMENS), - ( - 5, - UnitOfConductivity.MILLISIEMENS_PER_CM, - 5e3, - UnitOfConductivity.MICROSIEMENS, - ), - (5, UnitOfConductivity.MILLISIEMENS_PER_CM, 5e-3, UnitOfConductivity.SIEMENS), - ( - 5e6, - UnitOfConductivity.MICROSIEMENS_PER_CM, - 5e3, - UnitOfConductivity.MILLISIEMENS, - ), - (5e6, UnitOfConductivity.MICROSIEMENS_PER_CM, 5, UnitOfConductivity.SIEMENS), - # New to new ( 5, UnitOfConductivity.SIEMENS_PER_CM,