1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-25 05:26:47 +00:00

Move pressure utility to unit_conversion (#78953)

This commit is contained in:
epenet
2022-09-22 16:44:09 +02:00
committed by GitHub
parent 0767cdd935
commit 523d8d246b
7 changed files with 268 additions and 78 deletions

View File

@@ -7,11 +7,20 @@ from homeassistant.const import (
ENERGY_WATT_HOUR,
POWER_KILO_WATT,
POWER_WATT,
PRESSURE_CBAR,
PRESSURE_HPA,
PRESSURE_INHG,
PRESSURE_KPA,
PRESSURE_MBAR,
PRESSURE_MMHG,
PRESSURE_PA,
PRESSURE_PSI,
)
from homeassistant.util.unit_conversion import (
BaseUnitConverter,
EnergyConverter,
PowerConverter,
PressureConverter,
)
INVALID_SYMBOL = "bob"
@@ -25,6 +34,14 @@ INVALID_SYMBOL = "bob"
(EnergyConverter, ENERGY_MEGA_WATT_HOUR),
(PowerConverter, POWER_WATT),
(PowerConverter, POWER_KILO_WATT),
(PressureConverter, PRESSURE_PA),
(PressureConverter, PRESSURE_HPA),
(PressureConverter, PRESSURE_MBAR),
(PressureConverter, PRESSURE_INHG),
(PressureConverter, PRESSURE_KPA),
(PressureConverter, PRESSURE_CBAR),
(PressureConverter, PRESSURE_MMHG),
(PressureConverter, PRESSURE_PSI),
],
)
def test_convert_same_unit(converter: type[BaseUnitConverter], valid_unit: str) -> None:
@@ -37,6 +54,7 @@ def test_convert_same_unit(converter: type[BaseUnitConverter], valid_unit: str)
[
(EnergyConverter, ENERGY_KILO_WATT_HOUR),
(PowerConverter, POWER_WATT),
(PressureConverter, PRESSURE_PA),
],
)
def test_convert_invalid_unit(
@@ -47,7 +65,7 @@ def test_convert_invalid_unit(
converter.convert(5, INVALID_SYMBOL, valid_unit)
with pytest.raises(ValueError):
EnergyConverter.convert(5, valid_unit, INVALID_SYMBOL)
converter.convert(5, valid_unit, INVALID_SYMBOL)
@pytest.mark.parametrize(
@@ -55,6 +73,7 @@ def test_convert_invalid_unit(
[
(EnergyConverter, ENERGY_WATT_HOUR, ENERGY_KILO_WATT_HOUR),
(PowerConverter, POWER_WATT, POWER_KILO_WATT),
(PressureConverter, PRESSURE_HPA, PRESSURE_INHG),
],
)
def test_convert_nonnumeric_value(
@@ -76,6 +95,188 @@ def test_convert_nonnumeric_value(
(EnergyConverter, 10, ENERGY_MEGA_WATT_HOUR, 10000, ENERGY_KILO_WATT_HOUR),
(PowerConverter, 10, POWER_KILO_WATT, 10000, POWER_WATT),
(PowerConverter, 10, POWER_WATT, 0.01, POWER_KILO_WATT),
(
PressureConverter,
1000,
PRESSURE_HPA,
pytest.approx(14.5037743897),
PRESSURE_PSI,
),
(
PressureConverter,
1000,
PRESSURE_HPA,
pytest.approx(29.5299801647),
PRESSURE_INHG,
),
(
PressureConverter,
1000,
PRESSURE_HPA,
pytest.approx(100000),
PRESSURE_PA,
),
(
PressureConverter,
1000,
PRESSURE_HPA,
pytest.approx(100),
PRESSURE_KPA,
),
(
PressureConverter,
1000,
PRESSURE_HPA,
pytest.approx(1000),
PRESSURE_MBAR,
),
(
PressureConverter,
1000,
PRESSURE_HPA,
pytest.approx(100),
PRESSURE_CBAR,
),
(
PressureConverter,
100,
PRESSURE_KPA,
pytest.approx(14.5037743897),
PRESSURE_PSI,
),
(
PressureConverter,
100,
PRESSURE_KPA,
pytest.approx(29.5299801647),
PRESSURE_INHG,
),
(
PressureConverter,
100,
PRESSURE_KPA,
pytest.approx(100000),
PRESSURE_PA,
),
(
PressureConverter,
100,
PRESSURE_KPA,
pytest.approx(1000),
PRESSURE_HPA,
),
(
PressureConverter,
100,
PRESSURE_KPA,
pytest.approx(1000),
PRESSURE_MBAR,
),
(
PressureConverter,
100,
PRESSURE_KPA,
pytest.approx(100),
PRESSURE_CBAR,
),
(
PressureConverter,
30,
PRESSURE_INHG,
pytest.approx(14.7346266155),
PRESSURE_PSI,
),
(
PressureConverter,
30,
PRESSURE_INHG,
pytest.approx(101.59167),
PRESSURE_KPA,
),
(
PressureConverter,
30,
PRESSURE_INHG,
pytest.approx(1015.9167),
PRESSURE_HPA,
),
(
PressureConverter,
30,
PRESSURE_INHG,
pytest.approx(101591.67),
PRESSURE_PA,
),
(
PressureConverter,
30,
PRESSURE_INHG,
pytest.approx(1015.9167),
PRESSURE_MBAR,
),
(
PressureConverter,
30,
PRESSURE_INHG,
pytest.approx(101.59167),
PRESSURE_CBAR,
),
(
PressureConverter,
30,
PRESSURE_INHG,
pytest.approx(762.002),
PRESSURE_MMHG,
),
(
PressureConverter,
30,
PRESSURE_MMHG,
pytest.approx(0.580102),
PRESSURE_PSI,
),
(
PressureConverter,
30,
PRESSURE_MMHG,
pytest.approx(3.99966),
PRESSURE_KPA,
),
(
PressureConverter,
30,
PRESSURE_MMHG,
pytest.approx(39.9966),
PRESSURE_HPA,
),
(
PressureConverter,
30,
PRESSURE_MMHG,
pytest.approx(3999.66),
PRESSURE_PA,
),
(
PressureConverter,
30,
PRESSURE_MMHG,
pytest.approx(39.9966),
PRESSURE_MBAR,
),
(
PressureConverter,
30,
PRESSURE_MMHG,
pytest.approx(3.99966),
PRESSURE_CBAR,
),
(
PressureConverter,
30,
PRESSURE_MMHG,
pytest.approx(1.181099),
PRESSURE_INHG,
),
],
)
def test_convert(