From d202929de5821aa16ccf4a4c6c0612d2c35a9031 Mon Sep 17 00:00:00 2001 From: Nicolas Graziano Date: Sat, 23 Jul 2016 18:53:16 +0200 Subject: [PATCH] Float value for input slider (#2607) * Allow input_slider value to be a float number. * Change input_slider unit test to allow float number. --- homeassistant/components/input_slider.py | 4 ++-- tests/components/test_input_slider.py | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/input_slider.py b/homeassistant/components/input_slider.py index b667854e59c..66b41d15c0c 100644 --- a/homeassistant/components/input_slider.py +++ b/homeassistant/components/input_slider.py @@ -34,7 +34,7 @@ SERVICE_SELECT_VALUE = 'select_value' SERVICE_SELECT_VALUE_SCHEMA = vol.Schema({ vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, - vol.Required(ATTR_VALUE): vol.Coerce(int), + vol.Required(ATTR_VALUE): vol.Coerce(float), }) @@ -152,7 +152,7 @@ class InputSlider(Entity): def select_value(self, value): """Select new value.""" - num_value = int(value) + num_value = float(value) if num_value < self._minimum or num_value > self._maximum: _LOGGER.warning('Invalid value: %s (range %s - %s)', num_value, self._minimum, self._maximum) diff --git a/tests/components/test_input_slider.py b/tests/components/test_input_slider.py index f69553a21f7..3c13f797c42 100644 --- a/tests/components/test_input_slider.py +++ b/tests/components/test_input_slider.py @@ -49,16 +49,22 @@ class TestInputSlider(unittest.TestCase): entity_id = 'input_slider.test_1' state = self.hass.states.get(entity_id) - self.assertEqual('50', state.state) + self.assertEqual(50, float(state.state)) + + input_slider.select_value(self.hass, entity_id, '30.4') + self.hass.pool.block_till_done() + + state = self.hass.states.get(entity_id) + self.assertEqual(30.4, float(state.state)) input_slider.select_value(self.hass, entity_id, '70') self.hass.pool.block_till_done() state = self.hass.states.get(entity_id) - self.assertEqual('70', state.state) + self.assertEqual(70, float(state.state)) input_slider.select_value(self.hass, entity_id, '110') self.hass.pool.block_till_done() state = self.hass.states.get(entity_id) - self.assertEqual('70', state.state) + self.assertEqual(70, float(state.state))