From 0dcc69d800e7cec122f1bf56505eb0bd39cde5d6 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 10 Dec 2015 20:46:15 -0800 Subject: [PATCH] Fix template rounding --- homeassistant/util/template.py | 3 ++- tests/util/test_template.py | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/homeassistant/util/template.py b/homeassistant/util/template.py index 9fbbcff13b9b..7e3c1f573b0d 100644 --- a/homeassistant/util/template.py +++ b/homeassistant/util/template.py @@ -13,7 +13,8 @@ ENV = SandboxedEnvironment() def forgiving_round(value, precision=0): """ Rounding method that accepts strings. """ try: - return int(value) if precision == 0 else round(float(value), precision) + return int(float(value)) if precision == 0 else round(float(value), + precision) except ValueError: # If value can't be converted to float return value diff --git a/tests/util/test_template.py b/tests/util/test_template.py index 4592e4549d40..b8752806625b 100644 --- a/tests/util/test_template.py +++ b/tests/util/test_template.py @@ -48,19 +48,19 @@ class TestUtilTemplate(unittest.TestCase): '{% for state in states.sensor %}{{ state.state }}{% endfor %}')) def test_rounding_value(self): - self.hass.states.set('sensor.temperature', 12.34) + self.hass.states.set('sensor.temperature', 12.78) self.assertEqual( - '12.3', + '12.8', template.render( self.hass, '{{ states.sensor.temperature.state | round(1) }}')) def test_rounding_value2(self): - self.hass.states.set('sensor.temperature', 12.34) + self.hass.states.set('sensor.temperature', 12.72) self.assertEqual( - '123', + '127', template.render( self.hass, '{{ states.sensor.temperature.state | multiply(10) | round }}'))