1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00
This commit is contained in:
Paulus Schoutsen
2019-07-31 12:25:30 -07:00
parent da05dfe708
commit 4de97abc3a
2676 changed files with 163166 additions and 140084 deletions

View File

@@ -7,11 +7,17 @@ real HTTP calls are not initiated during testing.
from pysmartthings import Attribute, Capability
from homeassistant.components.fan import (
ATTR_SPEED, ATTR_SPEED_LIST, DOMAIN as FAN_DOMAIN, SPEED_HIGH, SPEED_LOW,
SPEED_MEDIUM, SPEED_OFF, SUPPORT_SET_SPEED)
ATTR_SPEED,
ATTR_SPEED_LIST,
DOMAIN as FAN_DOMAIN,
SPEED_HIGH,
SPEED_LOW,
SPEED_MEDIUM,
SPEED_OFF,
SUPPORT_SET_SPEED,
)
from homeassistant.components.smartthings import fan
from homeassistant.components.smartthings.const import (
DOMAIN, SIGNAL_SMARTTHINGS_UPDATE)
from homeassistant.components.smartthings.const import DOMAIN, SIGNAL_SMARTTHINGS_UPDATE
from homeassistant.const import ATTR_ENTITY_ID, ATTR_SUPPORTED_FEATURES
from homeassistant.helpers.dispatcher import async_dispatcher_send
@@ -28,16 +34,21 @@ async def test_entity_state(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'on', Attribute.fan_speed: 2})
status={Attribute.switch: "on", Attribute.fan_speed: 2},
)
await setup_platform(hass, FAN_DOMAIN, devices=[device])
# Dimmer 1
state = hass.states.get('fan.fan_1')
assert state.state == 'on'
state = hass.states.get("fan.fan_1")
assert state.state == "on"
assert state.attributes[ATTR_SUPPORTED_FEATURES] == SUPPORT_SET_SPEED
assert state.attributes[ATTR_SPEED] == SPEED_MEDIUM
assert state.attributes[ATTR_SPEED_LIST] == \
[SPEED_OFF, SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH]
assert state.attributes[ATTR_SPEED_LIST] == [
SPEED_OFF,
SPEED_LOW,
SPEED_MEDIUM,
SPEED_HIGH,
]
async def test_entity_and_device_attributes(hass, device_factory):
@@ -46,7 +57,8 @@ async def test_entity_and_device_attributes(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'on', Attribute.fan_speed: 2})
status={Attribute.switch: "on", Attribute.fan_speed: 2},
)
# Act
await setup_platform(hass, FAN_DOMAIN, devices=[device])
entity_registry = await hass.helpers.entity_registry.async_get_registry()
@@ -56,12 +68,11 @@ async def test_entity_and_device_attributes(hass, device_factory):
assert entry
assert entry.unique_id == device.device_id
entry = device_registry.async_get_device(
{(DOMAIN, device.device_id)}, [])
entry = device_registry.async_get_device({(DOMAIN, device.device_id)}, [])
assert entry
assert entry.name == device.label
assert entry.model == device.device_type_name
assert entry.manufacturer == 'Unavailable'
assert entry.manufacturer == "Unavailable"
async def test_turn_off(hass, device_factory):
@@ -70,16 +81,17 @@ async def test_turn_off(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'on', Attribute.fan_speed: 2})
status={Attribute.switch: "on", Attribute.fan_speed: 2},
)
await setup_platform(hass, FAN_DOMAIN, devices=[device])
# Act
await hass.services.async_call(
'fan', 'turn_off', {'entity_id': 'fan.fan_1'},
blocking=True)
"fan", "turn_off", {"entity_id": "fan.fan_1"}, blocking=True
)
# Assert
state = hass.states.get('fan.fan_1')
state = hass.states.get("fan.fan_1")
assert state is not None
assert state.state == 'off'
assert state.state == "off"
async def test_turn_on(hass, device_factory):
@@ -88,16 +100,17 @@ async def test_turn_on(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'off', Attribute.fan_speed: 0})
status={Attribute.switch: "off", Attribute.fan_speed: 0},
)
await setup_platform(hass, FAN_DOMAIN, devices=[device])
# Act
await hass.services.async_call(
'fan', 'turn_on', {ATTR_ENTITY_ID: "fan.fan_1"},
blocking=True)
"fan", "turn_on", {ATTR_ENTITY_ID: "fan.fan_1"}, blocking=True
)
# Assert
state = hass.states.get("fan.fan_1")
assert state is not None
assert state.state == 'on'
assert state.state == "on"
async def test_turn_on_with_speed(hass, device_factory):
@@ -106,18 +119,20 @@ async def test_turn_on_with_speed(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'off', Attribute.fan_speed: 0})
status={Attribute.switch: "off", Attribute.fan_speed: 0},
)
await setup_platform(hass, FAN_DOMAIN, devices=[device])
# Act
await hass.services.async_call(
'fan', 'turn_on',
{ATTR_ENTITY_ID: "fan.fan_1",
ATTR_SPEED: SPEED_HIGH},
blocking=True)
"fan",
"turn_on",
{ATTR_ENTITY_ID: "fan.fan_1", ATTR_SPEED: SPEED_HIGH},
blocking=True,
)
# Assert
state = hass.states.get("fan.fan_1")
assert state is not None
assert state.state == 'on'
assert state.state == "on"
assert state.attributes[ATTR_SPEED] == SPEED_HIGH
@@ -127,18 +142,20 @@ async def test_set_speed(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'off', Attribute.fan_speed: 0})
status={Attribute.switch: "off", Attribute.fan_speed: 0},
)
await setup_platform(hass, FAN_DOMAIN, devices=[device])
# Act
await hass.services.async_call(
'fan', 'set_speed',
{ATTR_ENTITY_ID: "fan.fan_1",
ATTR_SPEED: SPEED_HIGH},
blocking=True)
"fan",
"set_speed",
{ATTR_ENTITY_ID: "fan.fan_1", ATTR_SPEED: SPEED_HIGH},
blocking=True,
)
# Assert
state = hass.states.get("fan.fan_1")
assert state is not None
assert state.state == 'on'
assert state.state == "on"
assert state.attributes[ATTR_SPEED] == SPEED_HIGH
@@ -148,17 +165,17 @@ async def test_update_from_signal(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'off', Attribute.fan_speed: 0})
status={Attribute.switch: "off", Attribute.fan_speed: 0},
)
await setup_platform(hass, FAN_DOMAIN, devices=[device])
await device.switch_on(True)
# Act
async_dispatcher_send(hass, SIGNAL_SMARTTHINGS_UPDATE,
[device.device_id])
async_dispatcher_send(hass, SIGNAL_SMARTTHINGS_UPDATE, [device.device_id])
# Assert
await hass.async_block_till_done()
state = hass.states.get('fan.fan_1')
state = hass.states.get("fan.fan_1")
assert state is not None
assert state.state == 'on'
assert state.state == "on"
async def test_unload_config_entry(hass, device_factory):
@@ -167,10 +184,10 @@ async def test_unload_config_entry(hass, device_factory):
device = device_factory(
"Fan 1",
capabilities=[Capability.switch, Capability.fan_speed],
status={Attribute.switch: 'off', Attribute.fan_speed: 0})
status={Attribute.switch: "off", Attribute.fan_speed: 0},
)
config_entry = await setup_platform(hass, FAN_DOMAIN, devices=[device])
# Act
await hass.config_entries.async_forward_entry_unload(
config_entry, 'fan')
await hass.config_entries.async_forward_entry_unload(config_entry, "fan")
# Assert
assert not hass.states.get('fan.fan_1')
assert not hass.states.get("fan.fan_1")