67 lines
2.5 KiB
Python
67 lines
2.5 KiB
Python
|
"""Test homeassistant pressure utility functions."""
|
||
|
import unittest
|
||
|
import pytest
|
||
|
|
||
|
from homeassistant.const import (PRESSURE_PA, PRESSURE_HPA, PRESSURE_MBAR,
|
||
|
PRESSURE_INHG, PRESSURE_PSI)
|
||
|
import homeassistant.util.pressure as pressure_util
|
||
|
|
||
|
INVALID_SYMBOL = 'bob'
|
||
|
VALID_SYMBOL = PRESSURE_PA
|
||
|
|
||
|
|
||
|
class TestPressureUtil(unittest.TestCase):
|
||
|
"""Test the pressure utility functions."""
|
||
|
|
||
|
def test_convert_same_unit(self):
|
||
|
"""Test conversion from any unit to same unit."""
|
||
|
assert pressure_util.convert(2, PRESSURE_PA, PRESSURE_PA) == 2
|
||
|
assert pressure_util.convert(3, PRESSURE_HPA, PRESSURE_HPA) == 3
|
||
|
assert pressure_util.convert(4, PRESSURE_MBAR, PRESSURE_MBAR) == 4
|
||
|
assert pressure_util.convert(5, PRESSURE_INHG, PRESSURE_INHG) == 5
|
||
|
|
||
|
def test_convert_invalid_unit(self):
|
||
|
"""Test exception is thrown for invalid units."""
|
||
|
with pytest.raises(ValueError):
|
||
|
pressure_util.convert(5, INVALID_SYMBOL, VALID_SYMBOL)
|
||
|
|
||
|
with pytest.raises(ValueError):
|
||
|
pressure_util.convert(5, VALID_SYMBOL, INVALID_SYMBOL)
|
||
|
|
||
|
def test_convert_nonnumeric_value(self):
|
||
|
"""Test exception is thrown for nonnumeric type."""
|
||
|
with pytest.raises(TypeError):
|
||
|
pressure_util.convert('a', PRESSURE_HPA, PRESSURE_INHG)
|
||
|
|
||
|
def test_convert_from_hpascals(self):
|
||
|
"""Test conversion from hPA to other units."""
|
||
|
hpascals = 1000
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(hpascals, PRESSURE_HPA, PRESSURE_PSI),
|
||
|
14.5037743897)
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(hpascals, PRESSURE_HPA, PRESSURE_INHG),
|
||
|
29.5299801647)
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(hpascals, PRESSURE_HPA, PRESSURE_PA),
|
||
|
100000)
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(hpascals, PRESSURE_HPA, PRESSURE_MBAR),
|
||
|
1000)
|
||
|
|
||
|
def test_convert_from_inhg(self):
|
||
|
"""Test conversion from inHg to other units."""
|
||
|
inhg = 30
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(inhg, PRESSURE_INHG, PRESSURE_PSI),
|
||
|
14.7346266155)
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(inhg, PRESSURE_INHG, PRESSURE_HPA),
|
||
|
1015.9167)
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(inhg, PRESSURE_INHG, PRESSURE_PA),
|
||
|
101591.67)
|
||
|
self.assertAlmostEqual(
|
||
|
pressure_util.convert(inhg, PRESSURE_INHG, PRESSURE_MBAR),
|
||
|
1015.9167)
|