Fix ZeroDivisionError for inverse unit conversions (#159161)

This commit is contained in:
Rene Nulsch
2025-12-23 21:25:19 +01:00
committed by GitHub
parent af1218876c
commit 19f8d9d41b
2 changed files with 57 additions and 1 deletions

View File

@@ -1264,6 +1264,58 @@ def test_unit_conversion_factory_allow_none_with_none() -> None:
)(None)
is None
)
assert (
EnergyDistanceConverter.converter_factory_allow_none(
UnitOfEnergyDistance.MILES_PER_KILO_WATT_HOUR,
UnitOfEnergyDistance.KILO_WATT_HOUR_PER_100_KM,
)(0)
is None
)
assert (
EnergyDistanceConverter.converter_factory_allow_none(
UnitOfEnergyDistance.KILO_WATT_HOUR_PER_100_KM,
UnitOfEnergyDistance.WATT_HOUR_PER_KM,
)(0)
== 0
)
assert (
EnergyDistanceConverter.converter_factory_allow_none(
UnitOfEnergyDistance.KM_PER_KILO_WATT_HOUR,
UnitOfEnergyDistance.MILES_PER_KILO_WATT_HOUR,
)(0.0)
== 0.0
)
assert (
EnergyDistanceConverter.converter_factory_allow_none(
UnitOfEnergyDistance.MILES_PER_KILO_WATT_HOUR,
UnitOfEnergyDistance.KM_PER_KILO_WATT_HOUR,
)(0)
== 0.0
)
def test_unit_conversion_factory_allow_none_with_zero_for_inverse_units() -> None:
"""Test converter_factory_allow_none returns None for zero with inverse units."""
# Test EnergyDistanceConverter with inverse units (kWh/100km <-> km/kWh)
assert (
EnergyDistanceConverter.converter_factory_allow_none(
UnitOfEnergyDistance.KILO_WATT_HOUR_PER_100_KM,
UnitOfEnergyDistance.KM_PER_KILO_WATT_HOUR,
)(0)
is None
)
assert (
EnergyDistanceConverter.converter_factory_allow_none(
UnitOfEnergyDistance.KM_PER_KILO_WATT_HOUR,
UnitOfEnergyDistance.KILO_WATT_HOUR_PER_100_KM,
)(0)
is None
)
# Test with non-zero value to ensure normal conversion still works
assert EnergyDistanceConverter.converter_factory_allow_none(
UnitOfEnergyDistance.KILO_WATT_HOUR_PER_100_KM,
UnitOfEnergyDistance.KM_PER_KILO_WATT_HOUR,
)(25) == pytest.approx(4)
@pytest.mark.parametrize(