Add script + extra config validators

* Add config validation and extra validators

* Address PR comments
This commit is contained in:
Paulus Schoutsen 2016-04-03 10:19:09 -07:00
parent 7ed5055fa2
commit e140e9b8ab
9 changed files with 404 additions and 88 deletions

View file

@ -3,6 +3,7 @@
from datetime import timedelta
import unittest
from homeassistant.bootstrap import _setup_component
from homeassistant.components import script
import homeassistant.util.dt as dt_util
@ -18,46 +19,43 @@ class TestScript(unittest.TestCase):
def setUp(self): # pylint: disable=invalid-name
"""Setup things to be run when tests are started."""
self.hass = get_test_home_assistant()
self.hass.config.components.append('group')
def tearDown(self): # pylint: disable=invalid-name
"""Stop down everything that was started."""
self.hass.stop()
def test_setup_with_missing_sequence(self):
"""Test setup with missing sequence."""
self.assertTrue(script.setup(self.hass, {
'script': {
'test': {}
}
}))
self.assertEqual(0, len(self.hass.states.entity_ids('script')))
def test_setup_with_invalid_object_id(self):
"""Test setup with invalid objects."""
self.assertTrue(script.setup(self.hass, {
'script': {
def test_setup_with_invalid_configs(self):
"""Test setup with invalid configs."""
for value in (
{'test': {}},
{
'test hello world': {
'sequence': []
}
}
}))
self.assertEqual(0, len(self.hass.states.entity_ids('script')))
def test_setup_with_dict_as_sequence(self):
"""Test setup with dict as sequence."""
self.assertTrue(script.setup(self.hass, {
'script': {
},
{
'test': {
'sequence': {
'event': 'test_event'
}
}
}
}))
},
{
'test': {
'sequence': {
'event': 'test_event',
'service': 'homeassistant.turn_on',
}
}
},
self.assertEqual(0, len(self.hass.states.entity_ids('script')))
):
assert not _setup_component(self.hass, 'script', {
'script': value
}), 'Script loaded with wrong config {}'.format(value)
self.assertEqual(0, len(self.hass.states.entity_ids('script')))
def test_firing_event(self):
"""Test the firing of events."""
@ -70,7 +68,7 @@ class TestScript(unittest.TestCase):
self.hass.bus.listen(event, record_event)
self.assertTrue(script.setup(self.hass, {
assert _setup_component(self.hass, 'script', {
'script': {
'test': {
'alias': 'Test Script',
@ -82,7 +80,7 @@ class TestScript(unittest.TestCase):
}]
}
}
}))
})
script.turn_on(self.hass, ENTITY_ID)
self.hass.pool.block_till_done()
@ -102,7 +100,7 @@ class TestScript(unittest.TestCase):
self.hass.services.register('test', 'script', record_call)
self.assertTrue(script.setup(self.hass, {
assert _setup_component(self.hass, 'script', {
'script': {
'test': {
'sequence': [{
@ -113,7 +111,7 @@ class TestScript(unittest.TestCase):
}]
}
}
}))
})
script.turn_on(self.hass, ENTITY_ID)
self.hass.pool.block_till_done()
@ -131,7 +129,7 @@ class TestScript(unittest.TestCase):
self.hass.services.register('test', 'script', record_call)
self.assertTrue(script.setup(self.hass, {
assert _setup_component(self.hass, 'script', {
'script': {
'test': {
'sequence': [{
@ -153,7 +151,7 @@ class TestScript(unittest.TestCase):
}]
}
}
}))
})
script.turn_on(self.hass, ENTITY_ID)
self.hass.pool.block_till_done()
@ -172,7 +170,7 @@ class TestScript(unittest.TestCase):
self.hass.bus.listen(event, record_event)
self.assertTrue(script.setup(self.hass, {
assert _setup_component(self.hass, 'script', {
'script': {
'test': {
'sequence': [{
@ -186,7 +184,7 @@ class TestScript(unittest.TestCase):
}]
}
}
}))
})
script.turn_on(self.hass, ENTITY_ID)
self.hass.pool.block_till_done()
@ -219,7 +217,7 @@ class TestScript(unittest.TestCase):
self.hass.bus.listen(event, record_event)
self.assertTrue(script.setup(self.hass, {
assert _setup_component(self.hass, 'script', {
'script': {
'test': {
'sequence': [{
@ -231,7 +229,7 @@ class TestScript(unittest.TestCase):
}]
}
}
}))
})
script.turn_on(self.hass, ENTITY_ID)
self.hass.pool.block_till_done()
@ -263,7 +261,7 @@ class TestScript(unittest.TestCase):
self.hass.bus.listen(event, record_event)
self.assertTrue(script.setup(self.hass, {
assert _setup_component(self.hass, 'script', {
'script': {
'test': {
'sequence': [{
@ -275,7 +273,7 @@ class TestScript(unittest.TestCase):
}]
}
}
}))
})
script.turn_on(self.hass, ENTITY_ID)
self.hass.pool.block_till_done()
@ -298,7 +296,7 @@ class TestScript(unittest.TestCase):
self.hass.bus.listen(event, record_event)
self.assertTrue(script.setup(self.hass, {
assert _setup_component(self.hass, 'script', {
'script': {
'test': {
'sequence': [{
@ -310,7 +308,7 @@ class TestScript(unittest.TestCase):
}]
}
}
}))
})
script.toggle(self.hass, ENTITY_ID)
self.hass.pool.block_till_done()