Remove deprecated unit system properties (#86643)

* Remove deprecated unit system properties

* Fix tests
This commit is contained in:
epenet 2023-01-27 12:09:26 +01:00 committed by GitHub
parent 3ff3834cae
commit 561fc2d771
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 81 deletions

View File

@ -23,7 +23,6 @@ from homeassistant.const import (
UnitOfTemperature,
UnitOfVolume,
)
from homeassistant.helpers.frame import report
from .unit_conversion import (
DistanceConverter,
@ -121,35 +120,6 @@ class UnitSystem:
self.wind_speed_unit = wind_speed
self._conversions = conversions
@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,
)
if self is IMPERIAL_SYSTEM:
# kept for compatibility reasons, with associated warning above
return _CONF_UNIT_SYSTEM_IMPERIAL
return self._name
@property
def is_metric(self) -> bool:
"""Determine if this is the metric unit system."""
report(
(
"accesses the `is_metric` 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 is METRIC_SYSTEM
def temperature(self, temperature: float, from_unit: str) -> float:
"""Convert the given temperature to this unit system."""
if not isinstance(temperature, Number):

View File

@ -9,6 +9,7 @@ from homeassistant.components import config
from homeassistant.components.websocket_api.const import TYPE_RESULT
from homeassistant.const import CONF_UNIT_SYSTEM, CONF_UNIT_SYSTEM_IMPERIAL
from homeassistant.util import dt as dt_util, location
from homeassistant.util.unit_system import US_CUSTOMARY_SYSTEM
@pytest.fixture
@ -55,7 +56,7 @@ async def test_websocket_core_update(hass, client):
assert hass.config.longitude != 50
assert hass.config.elevation != 25
assert hass.config.location_name != "Huis"
assert hass.config.units.name != CONF_UNIT_SYSTEM_IMPERIAL
assert hass.config.units is not US_CUSTOMARY_SYSTEM
assert hass.config.time_zone != "America/New_York"
assert hass.config.external_url != "https://www.example.com"
assert hass.config.internal_url != "http://example.com"
@ -91,7 +92,7 @@ async def test_websocket_core_update(hass, client):
assert hass.config.longitude == 50
assert hass.config.elevation == 25
assert hass.config.location_name == "Huis"
assert hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL
assert hass.config.units is US_CUSTOMARY_SYSTEM
assert hass.config.external_url == "https://www.example.com"
assert hass.config.internal_url == "http://example.local"
assert hass.config.currency == "USD"

View File

@ -412,7 +412,7 @@ async def test_loading_configuration_from_storage(hass, hass_storage):
assert hass.config.longitude == 13
assert hass.config.elevation == 10
assert hass.config.location_name == "Home"
assert hass.config.units.name == CONF_UNIT_SYSTEM_METRIC
assert hass.config.units is METRIC_SYSTEM
assert hass.config.time_zone == "Europe/Copenhagen"
assert hass.config.external_url == "https://www.example.com"
assert hass.config.internal_url == "http://example.local"
@ -446,7 +446,7 @@ async def test_loading_configuration_from_storage_with_yaml_only(hass, hass_stor
assert hass.config.longitude == 13
assert hass.config.elevation == 10
assert hass.config.location_name == "Home"
assert hass.config.units.name == CONF_UNIT_SYSTEM_METRIC
assert hass.config.units is METRIC_SYSTEM
assert hass.config.time_zone == "Europe/Copenhagen"
assert len(hass.config.allowlist_external_dirs) == 3
assert "/etc" in hass.config.allowlist_external_dirs
@ -517,7 +517,7 @@ async def test_override_stored_configuration(hass, hass_storage):
assert hass.config.longitude == 13
assert hass.config.elevation == 10
assert hass.config.location_name == "Home"
assert hass.config.units.name == CONF_UNIT_SYSTEM_METRIC
assert hass.config.units is METRIC_SYSTEM
assert hass.config.time_zone == "Europe/Copenhagen"
assert len(hass.config.allowlist_external_dirs) == 3
assert "/etc" in hass.config.allowlist_external_dirs
@ -550,7 +550,7 @@ async def test_loading_configuration(hass):
assert hass.config.longitude == 50
assert hass.config.elevation == 25
assert hass.config.location_name == "Huis"
assert hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL
assert hass.config.units is US_CUSTOMARY_SYSTEM
assert hass.config.time_zone == "America/New_York"
assert hass.config.external_url == "https://www.example.com"
assert hass.config.internal_url == "http://example.local"

View File

@ -311,51 +311,6 @@ def test_properties():
assert METRIC_SYSTEM.accumulated_precipitation_unit == UnitOfLength.MILLIMETERS
@pytest.mark.parametrize(
"unit_system, expected_flag",
[
(METRIC_SYSTEM, True),
(IMPERIAL_SYSTEM, False),
],
)
def test_is_metric(
caplog: pytest.LogCaptureFixture, unit_system: UnitSystem, expected_flag: bool
):
"""Test the is metric flag."""
assert unit_system.is_metric == expected_flag
assert (
"Detected code that accesses the `is_metric` property of the unit system."
in caplog.text
)
@pytest.mark.parametrize(
"unit_system, expected_name, expected_private_name",
[
(METRIC_SYSTEM, _CONF_UNIT_SYSTEM_METRIC, _CONF_UNIT_SYSTEM_METRIC),
(IMPERIAL_SYSTEM, _CONF_UNIT_SYSTEM_IMPERIAL, _CONF_UNIT_SYSTEM_US_CUSTOMARY),
(
US_CUSTOMARY_SYSTEM,
_CONF_UNIT_SYSTEM_IMPERIAL,
_CONF_UNIT_SYSTEM_US_CUSTOMARY,
),
],
)
def test_deprecated_name(
caplog: pytest.LogCaptureFixture,
unit_system: UnitSystem,
expected_name: str,
expected_private_name: str,
) -> None:
"""Test the name is deprecated."""
assert unit_system.name == expected_name
assert unit_system._name == expected_private_name
assert (
"Detected code that accesses the `name` property of the unit system."
in caplog.text
)
@pytest.mark.parametrize(
"key, expected_system",
[