mirror of
https://github.com/home-assistant/core.git
synced 2025-11-09 19:09:32 +00:00
Remove deprecated conductivity constants (#153942)
This commit is contained in:
@@ -9,7 +9,6 @@ from typing import TYPE_CHECKING, Final
|
|||||||
from .generated.entity_platforms import EntityPlatforms
|
from .generated.entity_platforms import EntityPlatforms
|
||||||
from .helpers.deprecation import (
|
from .helpers.deprecation import (
|
||||||
DeprecatedConstantEnum,
|
DeprecatedConstantEnum,
|
||||||
EnumWithDeprecatedMembers,
|
|
||||||
all_with_deprecated_constants,
|
all_with_deprecated_constants,
|
||||||
check_if_deprecated_constant,
|
check_if_deprecated_constant,
|
||||||
dir_with_deprecated_constants,
|
dir_with_deprecated_constants,
|
||||||
@@ -704,35 +703,13 @@ class UnitOfMass(StrEnum):
|
|||||||
STONES = "st"
|
STONES = "st"
|
||||||
|
|
||||||
|
|
||||||
class UnitOfConductivity(
|
class UnitOfConductivity(StrEnum):
|
||||||
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"),
|
|
||||||
},
|
|
||||||
):
|
|
||||||
"""Conductivity units."""
|
"""Conductivity units."""
|
||||||
|
|
||||||
SIEMENS_PER_CM = "S/cm"
|
SIEMENS_PER_CM = "S/cm"
|
||||||
MICROSIEMENS_PER_CM = "μS/cm"
|
MICROSIEMENS_PER_CM = "μS/cm"
|
||||||
MILLISIEMENS_PER_CM = "mS/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 units
|
||||||
LIGHT_LUX: Final = "lx"
|
LIGHT_LUX: Final = "lx"
|
||||||
|
|||||||
@@ -80,7 +80,9 @@ async def test_low_battery(hass: HomeAssistant) -> None:
|
|||||||
async def test_initial_states(hass: HomeAssistant) -> None:
|
async def test_initial_states(hass: HomeAssistant) -> None:
|
||||||
"""Test plant initialises attributes if sensor already exists."""
|
"""Test plant initialises attributes if sensor already exists."""
|
||||||
hass.states.async_set(
|
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"
|
plant_name = "some_plant"
|
||||||
assert await async_setup_component(
|
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, plant.DOMAIN, {plant.DOMAIN: {plant_name: GOOD_CONFIG}}
|
||||||
)
|
)
|
||||||
hass.states.async_set(
|
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()
|
await hass.async_block_till_done()
|
||||||
state = hass.states.get(f"plant.{plant_name}")
|
state = hass.states.get(f"plant.{plant_name}")
|
||||||
@@ -121,7 +125,7 @@ async def test_unavailable_state(hass: HomeAssistant) -> None:
|
|||||||
hass.states.async_set(
|
hass.states.async_set(
|
||||||
MOISTURE_ENTITY,
|
MOISTURE_ENTITY,
|
||||||
STATE_UNAVAILABLE,
|
STATE_UNAVAILABLE,
|
||||||
{ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS},
|
{ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS_PER_CM},
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
state = hass.states.get(f"plant.{plant_name}")
|
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, plant.DOMAIN, {plant.DOMAIN: {plant_name: GOOD_CONFIG}}
|
||||||
)
|
)
|
||||||
hass.states.async_set(
|
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()
|
await hass.async_block_till_done()
|
||||||
state = hass.states.get(f"plant.{plant_name}")
|
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(
|
hass.states.async_set(
|
||||||
MOISTURE_ENTITY,
|
MOISTURE_ENTITY,
|
||||||
STATE_UNAVAILABLE,
|
STATE_UNAVAILABLE,
|
||||||
{ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS},
|
{ATTR_UNIT_OF_MEASUREMENT: UnitOfConductivity.MICROSIEMENS_PER_CM},
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
state = hass.states.get(f"plant.{plant_name}")
|
state = hass.states.get(f"plant.{plant_name}")
|
||||||
|
|||||||
@@ -1785,7 +1785,7 @@ async def test_unit_conversion_priority_suggested_unit_change_2(
|
|||||||
UnitOfBloodGlucoseConcentration.MILLIGRAMS_PER_DECILITER,
|
UnitOfBloodGlucoseConcentration.MILLIGRAMS_PER_DECILITER,
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
(SensorDeviceClass.CONDUCTIVITY, UnitOfConductivity.MICROSIEMENS, 1),
|
(SensorDeviceClass.CONDUCTIVITY, UnitOfConductivity.MICROSIEMENS_PER_CM, 1),
|
||||||
(SensorDeviceClass.CURRENT, UnitOfElectricCurrent.MILLIAMPERE, 0),
|
(SensorDeviceClass.CURRENT, UnitOfElectricCurrent.MILLIAMPERE, 0),
|
||||||
(SensorDeviceClass.DATA_RATE, UnitOfDataRate.KILOBITS_PER_SECOND, 0),
|
(SensorDeviceClass.DATA_RATE, UnitOfDataRate.KILOBITS_PER_SECOND, 0),
|
||||||
(SensorDeviceClass.DATA_SIZE, UnitOfInformation.KILOBITS, 0),
|
(SensorDeviceClass.DATA_SIZE, UnitOfInformation.KILOBITS, 0),
|
||||||
|
|||||||
@@ -1,19 +1,12 @@
|
|||||||
"""Test const module."""
|
"""Test const module."""
|
||||||
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
import logging
|
|
||||||
import sys
|
|
||||||
from unittest.mock import Mock, patch
|
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant import const
|
from homeassistant import const
|
||||||
|
|
||||||
from .common import (
|
from .common import help_test_all, import_and_test_deprecated_constant
|
||||||
extract_stack_to_frame,
|
|
||||||
help_test_all,
|
|
||||||
import_and_test_deprecated_constant,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def _create_tuples(
|
def _create_tuples(
|
||||||
@@ -48,78 +41,3 @@ def test_deprecated_constant_name_changes(
|
|||||||
replacement,
|
replacement,
|
||||||
breaks_in_version,
|
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
|
|
||||||
|
|||||||
@@ -281,48 +281,6 @@ _CONVERTED_VALUE: dict[
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
ConductivityConverter: [
|
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,
|
5,
|
||||||
UnitOfConductivity.SIEMENS_PER_CM,
|
UnitOfConductivity.SIEMENS_PER_CM,
|
||||||
|
|||||||
Reference in New Issue
Block a user