Replace the usage of unit constants by enumerations in Tests [s-u] (#85937)

This commit is contained in:
Michael 2023-01-16 09:00:27 +01:00 committed by GitHub
parent 0b02abf708
commit 9709391b52
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 254 additions and 221 deletions

View file

@ -9,32 +9,16 @@ from homeassistant.components.number import NumberDeviceClass
from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass
from homeassistant.const import (
ATTR_UNIT_OF_MEASUREMENT,
LENGTH_CENTIMETERS,
LENGTH_INCHES,
LENGTH_KILOMETERS,
LENGTH_METERS,
LENGTH_MILES,
LENGTH_YARD,
MASS_GRAMS,
MASS_OUNCES,
PERCENTAGE,
PRESSURE_HPA,
PRESSURE_INHG,
PRESSURE_KPA,
PRESSURE_MMHG,
SPEED_INCHES_PER_HOUR,
SPEED_KILOMETERS_PER_HOUR,
SPEED_MILES_PER_HOUR,
SPEED_MILLIMETERS_PER_DAY,
STATE_UNKNOWN,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
VOLUME_CUBIC_FEET,
VOLUME_CUBIC_METERS,
VOLUME_FLUID_OUNCE,
VOLUME_LITERS,
UnitOfEnergy,
UnitOfLength,
UnitOfMass,
UnitOfPressure,
UnitOfSpeed,
UnitOfTemperature,
UnitOfVolume,
UnitOfVolumetricFlux,
)
from homeassistant.core import HomeAssistant, State
from homeassistant.helpers import entity_registry as er
@ -49,10 +33,28 @@ from tests.common import mock_restore_cache_with_extra_data
@pytest.mark.parametrize(
"unit_system,native_unit,state_unit,native_value,state_value",
[
(US_CUSTOMARY_SYSTEM, TEMP_FAHRENHEIT, TEMP_FAHRENHEIT, 100, 100),
(US_CUSTOMARY_SYSTEM, TEMP_CELSIUS, TEMP_FAHRENHEIT, 38, 100),
(METRIC_SYSTEM, TEMP_FAHRENHEIT, TEMP_CELSIUS, 100, 38),
(METRIC_SYSTEM, TEMP_CELSIUS, TEMP_CELSIUS, 38, 38),
(
US_CUSTOMARY_SYSTEM,
UnitOfTemperature.FAHRENHEIT,
UnitOfTemperature.FAHRENHEIT,
100,
100,
),
(
US_CUSTOMARY_SYSTEM,
UnitOfTemperature.CELSIUS,
UnitOfTemperature.FAHRENHEIT,
38,
100,
),
(
METRIC_SYSTEM,
UnitOfTemperature.FAHRENHEIT,
UnitOfTemperature.CELSIUS,
100,
38,
),
(METRIC_SYSTEM, UnitOfTemperature.CELSIUS, UnitOfTemperature.CELSIUS, 38, 38),
],
)
async def test_temperature_conversion(
@ -94,7 +96,7 @@ async def test_temperature_conversion_wrong_device_class(
platform.ENTITIES["0"] = platform.MockSensor(
name="Test",
native_value="0.0",
native_unit_of_measurement=TEMP_FAHRENHEIT,
native_unit_of_measurement=UnitOfTemperature.FAHRENHEIT,
device_class=device_class,
)
@ -105,7 +107,7 @@ async def test_temperature_conversion_wrong_device_class(
# Check temperature is not converted
state = hass.states.get(entity0.entity_id)
assert state.state == "0.0"
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == TEMP_FAHRENHEIT
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == UnitOfTemperature.FAHRENHEIT
@pytest.mark.parametrize("state_class", ("measurement", "total_increasing"))
@ -407,50 +409,50 @@ async def test_restore_sensor_restore_state(
# Smaller to larger unit, InHg is ~33x larger than hPa -> 1 more decimal
(
SensorDeviceClass.PRESSURE,
PRESSURE_HPA,
PRESSURE_INHG,
PRESSURE_INHG,
UnitOfPressure.HPA,
UnitOfPressure.INHG,
UnitOfPressure.INHG,
1000.0,
29.53,
),
(
SensorDeviceClass.PRESSURE,
PRESSURE_KPA,
PRESSURE_HPA,
PRESSURE_HPA,
UnitOfPressure.KPA,
UnitOfPressure.HPA,
UnitOfPressure.HPA,
1.234,
12.34,
),
(
SensorDeviceClass.PRESSURE,
PRESSURE_HPA,
PRESSURE_MMHG,
PRESSURE_MMHG,
UnitOfPressure.HPA,
UnitOfPressure.MMHG,
UnitOfPressure.MMHG,
1000,
750,
),
# Not a supported pressure unit
(
SensorDeviceClass.PRESSURE,
PRESSURE_HPA,
UnitOfPressure.HPA,
"peer_pressure",
PRESSURE_HPA,
UnitOfPressure.HPA,
1000,
1000,
),
(
SensorDeviceClass.TEMPERATURE,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
TEMP_FAHRENHEIT,
UnitOfTemperature.CELSIUS,
UnitOfTemperature.FAHRENHEIT,
UnitOfTemperature.FAHRENHEIT,
37.5,
99.5,
),
(
SensorDeviceClass.TEMPERATURE,
TEMP_FAHRENHEIT,
TEMP_CELSIUS,
TEMP_CELSIUS,
UnitOfTemperature.FAHRENHEIT,
UnitOfTemperature.CELSIUS,
UnitOfTemperature.CELSIUS,
100,
38.0,
),
@ -499,25 +501,25 @@ async def test_custom_unit(
[
# Distance
(
LENGTH_KILOMETERS,
LENGTH_MILES,
LENGTH_MILES,
UnitOfLength.KILOMETERS,
UnitOfLength.MILES,
UnitOfLength.MILES,
1000,
621,
SensorDeviceClass.DISTANCE,
),
(
LENGTH_CENTIMETERS,
LENGTH_INCHES,
LENGTH_INCHES,
UnitOfLength.CENTIMETERS,
UnitOfLength.INCHES,
UnitOfLength.INCHES,
7.24,
2.85,
SensorDeviceClass.DISTANCE,
),
(
LENGTH_KILOMETERS,
UnitOfLength.KILOMETERS,
"peer_distance",
LENGTH_KILOMETERS,
UnitOfLength.KILOMETERS,
1000,
1000,
SensorDeviceClass.DISTANCE,
@ -575,109 +577,109 @@ async def test_custom_unit(
# Pressure
# Smaller to larger unit, InHg is ~33x larger than hPa -> 1 more decimal
(
PRESSURE_HPA,
PRESSURE_INHG,
PRESSURE_INHG,
UnitOfPressure.HPA,
UnitOfPressure.INHG,
UnitOfPressure.INHG,
1000.0,
29.53,
SensorDeviceClass.PRESSURE,
),
(
PRESSURE_KPA,
PRESSURE_HPA,
PRESSURE_HPA,
UnitOfPressure.KPA,
UnitOfPressure.HPA,
UnitOfPressure.HPA,
1.234,
12.34,
SensorDeviceClass.PRESSURE,
),
(
PRESSURE_HPA,
PRESSURE_MMHG,
PRESSURE_MMHG,
UnitOfPressure.HPA,
UnitOfPressure.MMHG,
UnitOfPressure.MMHG,
1000,
750,
SensorDeviceClass.PRESSURE,
),
# Not a supported pressure unit
(
PRESSURE_HPA,
UnitOfPressure.HPA,
"peer_pressure",
PRESSURE_HPA,
UnitOfPressure.HPA,
1000,
1000,
SensorDeviceClass.PRESSURE,
),
# Speed
(
SPEED_KILOMETERS_PER_HOUR,
SPEED_MILES_PER_HOUR,
SPEED_MILES_PER_HOUR,
UnitOfSpeed.KILOMETERS_PER_HOUR,
UnitOfSpeed.MILES_PER_HOUR,
UnitOfSpeed.MILES_PER_HOUR,
100,
62,
SensorDeviceClass.SPEED,
),
(
SPEED_MILLIMETERS_PER_DAY,
SPEED_INCHES_PER_HOUR,
SPEED_INCHES_PER_HOUR,
UnitOfVolumetricFlux.MILLIMETERS_PER_DAY,
UnitOfVolumetricFlux.INCHES_PER_HOUR,
UnitOfVolumetricFlux.INCHES_PER_HOUR,
78,
0.13,
SensorDeviceClass.SPEED,
),
(
SPEED_KILOMETERS_PER_HOUR,
UnitOfSpeed.KILOMETERS_PER_HOUR,
"peer_distance",
SPEED_KILOMETERS_PER_HOUR,
UnitOfSpeed.KILOMETERS_PER_HOUR,
100,
100,
SensorDeviceClass.SPEED,
),
# Volume
(
VOLUME_CUBIC_METERS,
VOLUME_CUBIC_FEET,
VOLUME_CUBIC_FEET,
UnitOfVolume.CUBIC_METERS,
UnitOfVolume.CUBIC_FEET,
UnitOfVolume.CUBIC_FEET,
100,
3531,
SensorDeviceClass.VOLUME,
),
(
VOLUME_LITERS,
VOLUME_FLUID_OUNCE,
VOLUME_FLUID_OUNCE,
UnitOfVolume.LITERS,
UnitOfVolume.FLUID_OUNCES,
UnitOfVolume.FLUID_OUNCES,
2.3,
77.8,
SensorDeviceClass.VOLUME,
),
(
VOLUME_CUBIC_METERS,
UnitOfVolume.CUBIC_METERS,
"peer_distance",
VOLUME_CUBIC_METERS,
UnitOfVolume.CUBIC_METERS,
100,
100,
SensorDeviceClass.VOLUME,
),
# Weight
(
MASS_GRAMS,
MASS_OUNCES,
MASS_OUNCES,
UnitOfMass.GRAMS,
UnitOfMass.OUNCES,
UnitOfMass.OUNCES,
100,
3.5,
SensorDeviceClass.WEIGHT,
),
(
MASS_OUNCES,
MASS_GRAMS,
MASS_GRAMS,
UnitOfMass.OUNCES,
UnitOfMass.GRAMS,
UnitOfMass.GRAMS,
78,
2211,
SensorDeviceClass.WEIGHT,
),
(
MASS_GRAMS,
UnitOfMass.GRAMS,
"peer_distance",
MASS_GRAMS,
UnitOfMass.GRAMS,
100,
100,
SensorDeviceClass.WEIGHT,
@ -746,10 +748,10 @@ async def test_custom_unit_change(
# Distance
(
US_CUSTOMARY_SYSTEM,
LENGTH_KILOMETERS,
LENGTH_MILES,
LENGTH_METERS,
LENGTH_YARD,
UnitOfLength.KILOMETERS,
UnitOfLength.MILES,
UnitOfLength.METERS,
UnitOfLength.YARDS,
1000,
621,
1000000,
@ -875,9 +877,9 @@ async def test_unit_conversion_priority(
# Distance
(
US_CUSTOMARY_SYSTEM,
LENGTH_KILOMETERS,
LENGTH_YARD,
LENGTH_METERS,
UnitOfLength.KILOMETERS,
UnitOfLength.YARDS,
UnitOfLength.METERS,
1000,
1093613,
SensorDeviceClass.DISTANCE,
@ -956,16 +958,16 @@ async def test_unit_conversion_priority_suggested_unit_change(
# Distance
(
US_CUSTOMARY_SYSTEM,
LENGTH_KILOMETERS,
LENGTH_MILES,
UnitOfLength.KILOMETERS,
UnitOfLength.MILES,
1000,
621,
SensorDeviceClass.DISTANCE,
),
(
US_CUSTOMARY_SYSTEM,
LENGTH_METERS,
LENGTH_MILES,
UnitOfLength.METERS,
UnitOfLength.MILES,
1000000,
621.371,
SensorDeviceClass.DISTANCE,