Float value for input slider (#2607)

* Allow input_slider value to be a float number.

* Change input_slider unit test to allow float number.
This commit is contained in:
Nicolas Graziano 2016-07-23 18:53:16 +02:00 committed by Paulus Schoutsen
parent 6a189eb18d
commit d202929de5
2 changed files with 11 additions and 5 deletions

View File

@ -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)

View File

@ -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))