mirror of
https://github.com/home-assistant/core.git
synced 2025-04-26 10:17:51 +00:00
67 lines
1.9 KiB
Python
67 lines
1.9 KiB
Python
"""
|
|
tests.test_util
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Tests Home Assistant util methods.
|
|
"""
|
|
# pylint: disable=too-many-public-methods
|
|
import unittest
|
|
import homeassistant.core as ha
|
|
|
|
from homeassistant.util import template
|
|
|
|
|
|
class TestUtilTemplate(unittest.TestCase):
|
|
|
|
def setUp(self): # pylint: disable=invalid-name
|
|
self.hass = ha.HomeAssistant()
|
|
|
|
def tearDown(self): # pylint: disable=invalid-name
|
|
""" Stop down stuff we started. """
|
|
self.hass.stop()
|
|
|
|
def test_referring_states_by_entity_id(self):
|
|
self.hass.states.set('test.object', 'happy')
|
|
self.assertEqual(
|
|
'happy',
|
|
template.render(self.hass, '{{ states.test.object.state }}'))
|
|
|
|
def test_iterating_all_states(self):
|
|
self.hass.states.set('test.object', 'happy')
|
|
self.hass.states.set('sensor.temperature', 10)
|
|
|
|
self.assertEqual(
|
|
'10happy',
|
|
template.render(
|
|
self.hass,
|
|
'{% for state in states %}{{ state.state }}{% endfor %}'))
|
|
|
|
def test_iterating_domain_states(self):
|
|
self.hass.states.set('test.object', 'happy')
|
|
self.hass.states.set('sensor.back_door', 'open')
|
|
self.hass.states.set('sensor.temperature', 10)
|
|
|
|
self.assertEqual(
|
|
'open10',
|
|
template.render(
|
|
self.hass,
|
|
'{% for state in states.sensor %}{{ state.state }}{% endfor %}'))
|
|
|
|
def test_rounding_value(self):
|
|
self.hass.states.set('sensor.temperature', 12.34)
|
|
|
|
self.assertEqual(
|
|
'12.3',
|
|
template.render(
|
|
self.hass,
|
|
'{{ states.sensor.temperature.state | round(1) }}'))
|
|
|
|
def test_rounding_value2(self):
|
|
self.hass.states.set('sensor.temperature', 12.34)
|
|
|
|
self.assertEqual(
|
|
'123',
|
|
template.render(
|
|
self.hass,
|
|
'{{ states.sensor.temperature.state | multiply(10) | round }}'))
|