Adds light switch platform (#18562)
* Adds light switch platform * Addresses HoundCI warnings * Addresses Flake8 reported issues * Removes async_update call as per review
This commit is contained in:
parent
b3e37af9b1
commit
80cd8b180c
2 changed files with 194 additions and 0 deletions
81
tests/components/light/test_switch.py
Normal file
81
tests/components/light/test_switch.py
Normal file
|
@ -0,0 +1,81 @@
|
|||
"""The tests for the Light Switch platform."""
|
||||
|
||||
from homeassistant.setup import async_setup_component
|
||||
from tests.components.light import common
|
||||
from tests.components.switch import common as switch_common
|
||||
|
||||
|
||||
async def test_default_state(hass):
|
||||
"""Test light switch default state."""
|
||||
await async_setup_component(hass, 'light', {'light': {
|
||||
'platform': 'switch', 'entity_id': 'switch.test',
|
||||
'name': 'Christmas Tree Lights'
|
||||
}})
|
||||
await hass.async_block_till_done()
|
||||
|
||||
state = hass.states.get('light.christmas_tree_lights')
|
||||
assert state is not None
|
||||
assert state.state == 'unavailable'
|
||||
assert state.attributes['supported_features'] == 0
|
||||
assert state.attributes.get('brightness') is None
|
||||
assert state.attributes.get('hs_color') is None
|
||||
assert state.attributes.get('color_temp') is None
|
||||
assert state.attributes.get('white_value') is None
|
||||
assert state.attributes.get('effect_list') is None
|
||||
assert state.attributes.get('effect') is None
|
||||
|
||||
|
||||
async def test_light_service_calls(hass):
|
||||
"""Test service calls to light."""
|
||||
await async_setup_component(hass, 'switch', {'switch': [
|
||||
{'platform': 'demo'}
|
||||
]})
|
||||
await async_setup_component(hass, 'light', {'light': [
|
||||
{'platform': 'switch', 'entity_id': 'switch.decorative_lights'}
|
||||
]})
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get('light.light_switch').state == 'on'
|
||||
|
||||
common.async_toggle(hass, 'light.light_switch')
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get('switch.decorative_lights').state == 'off'
|
||||
assert hass.states.get('light.light_switch').state == 'off'
|
||||
|
||||
common.async_turn_on(hass, 'light.light_switch')
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get('switch.decorative_lights').state == 'on'
|
||||
assert hass.states.get('light.light_switch').state == 'on'
|
||||
|
||||
common.async_turn_off(hass, 'light.light_switch')
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get('switch.decorative_lights').state == 'off'
|
||||
assert hass.states.get('light.light_switch').state == 'off'
|
||||
|
||||
|
||||
async def test_switch_service_calls(hass):
|
||||
"""Test service calls to switch."""
|
||||
await async_setup_component(hass, 'switch', {'switch': [
|
||||
{'platform': 'demo'}
|
||||
]})
|
||||
await async_setup_component(hass, 'light', {'light': [
|
||||
{'platform': 'switch', 'entity_id': 'switch.decorative_lights'}
|
||||
]})
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get('light.light_switch').state == 'on'
|
||||
|
||||
switch_common.async_turn_off(hass, 'switch.decorative_lights')
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get('switch.decorative_lights').state == 'off'
|
||||
assert hass.states.get('light.light_switch').state == 'off'
|
||||
|
||||
switch_common.async_turn_on(hass, 'switch.decorative_lights')
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get('switch.decorative_lights').state == 'on'
|
||||
assert hass.states.get('light.light_switch').state == 'on'
|
Loading…
Add table
Add a link
Reference in a new issue