mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 19:27:45 +00:00
Deprecate name property of unit system (#80257)
This commit is contained in:
parent
d3840a04b5
commit
4dd0c079d5
@ -2015,7 +2015,9 @@ class Config:
|
|||||||
"latitude": self.latitude,
|
"latitude": self.latitude,
|
||||||
"longitude": self.longitude,
|
"longitude": self.longitude,
|
||||||
"elevation": self.elevation,
|
"elevation": self.elevation,
|
||||||
"unit_system": self.units.name,
|
# We don't want any components to use the name of the unit system
|
||||||
|
# so we are using the private attribute here
|
||||||
|
"unit_system": self.units._name, # pylint: disable=protected-access
|
||||||
"location_name": self.location_name,
|
"location_name": self.location_name,
|
||||||
"time_zone": self.time_zone,
|
"time_zone": self.time_zone,
|
||||||
"external_url": self.external_url,
|
"external_url": self.external_url,
|
||||||
|
@ -31,6 +31,7 @@ from homeassistant.const import (
|
|||||||
VOLUME_LITERS,
|
VOLUME_LITERS,
|
||||||
WIND_SPEED,
|
WIND_SPEED,
|
||||||
)
|
)
|
||||||
|
from homeassistant.helpers.frame import report
|
||||||
|
|
||||||
from .unit_conversion import (
|
from .unit_conversion import (
|
||||||
DistanceConverter,
|
DistanceConverter,
|
||||||
@ -107,7 +108,7 @@ class UnitSystem:
|
|||||||
if errors:
|
if errors:
|
||||||
raise ValueError(errors)
|
raise ValueError(errors)
|
||||||
|
|
||||||
self.name = name
|
self._name = name
|
||||||
self.accumulated_precipitation_unit = accumulated_precipitation
|
self.accumulated_precipitation_unit = accumulated_precipitation
|
||||||
self.temperature_unit = temperature
|
self.temperature_unit = temperature
|
||||||
self.length_unit = length
|
self.length_unit = length
|
||||||
@ -116,10 +117,21 @@ class UnitSystem:
|
|||||||
self.volume_unit = volume
|
self.volume_unit = volume
|
||||||
self.wind_speed_unit = wind_speed
|
self.wind_speed_unit = wind_speed
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self) -> str:
|
||||||
|
"""Return the name of the unit system."""
|
||||||
|
report(
|
||||||
|
"accesses the `name` property of the unit system. "
|
||||||
|
"This is deprecated and will stop working in Home Assistant 2023.1. "
|
||||||
|
"Please adjust to use instance check instead.",
|
||||||
|
error_if_core=False,
|
||||||
|
)
|
||||||
|
return self._name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_metric(self) -> bool:
|
def is_metric(self) -> bool:
|
||||||
"""Determine if this is the metric unit system."""
|
"""Determine if this is the metric unit system."""
|
||||||
return self.name == CONF_UNIT_SYSTEM_METRIC
|
return self._name == CONF_UNIT_SYSTEM_METRIC
|
||||||
|
|
||||||
def temperature(self, temperature: float, from_unit: str) -> float:
|
def temperature(self, temperature: float, from_unit: str) -> float:
|
||||||
"""Convert the given temperature to this unit system."""
|
"""Convert the given temperature to this unit system."""
|
||||||
|
@ -3,6 +3,8 @@ import pytest
|
|||||||
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ACCUMULATED_PRECIPITATION,
|
ACCUMULATED_PRECIPITATION,
|
||||||
|
CONF_UNIT_SYSTEM_IMPERIAL,
|
||||||
|
CONF_UNIT_SYSTEM_METRIC,
|
||||||
LENGTH,
|
LENGTH,
|
||||||
LENGTH_KILOMETERS,
|
LENGTH_KILOMETERS,
|
||||||
LENGTH_METERS,
|
LENGTH_METERS,
|
||||||
@ -298,3 +300,21 @@ def test_is_metric():
|
|||||||
"""Test the is metric flag."""
|
"""Test the is metric flag."""
|
||||||
assert METRIC_SYSTEM.is_metric
|
assert METRIC_SYSTEM.is_metric
|
||||||
assert not IMPERIAL_SYSTEM.is_metric
|
assert not IMPERIAL_SYSTEM.is_metric
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"unit_system, expected_name",
|
||||||
|
[
|
||||||
|
(METRIC_SYSTEM, CONF_UNIT_SYSTEM_METRIC),
|
||||||
|
(IMPERIAL_SYSTEM, CONF_UNIT_SYSTEM_IMPERIAL),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_deprecated_name(
|
||||||
|
caplog: pytest.LogCaptureFixture, unit_system: UnitSystem, expected_name: str
|
||||||
|
) -> None:
|
||||||
|
"""Test the name is deprecated."""
|
||||||
|
assert unit_system.name == expected_name
|
||||||
|
assert (
|
||||||
|
"Detected code that accesses the `name` property of the unit system."
|
||||||
|
in caplog.text
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user