Replace the usage of unit constants by enumerations in Tests [s-u] (#85937)
This commit is contained in:
parent
0b02abf708
commit
9709391b52
15 changed files with 254 additions and 221 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue