mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 16:57:10 +00:00
Demo: remove deprecated switch entity properties (#52424)
* Demo: deprecate switch entity properties * Fix emulated_kasa test
This commit is contained in:
parent
5cd4471c67
commit
1eb27f7ccc
@ -10,9 +10,13 @@ from homeassistant.const import (
|
|||||||
CONCENTRATION_PARTS_PER_MILLION,
|
CONCENTRATION_PARTS_PER_MILLION,
|
||||||
DEVICE_CLASS_CO,
|
DEVICE_CLASS_CO,
|
||||||
DEVICE_CLASS_CO2,
|
DEVICE_CLASS_CO2,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
DEVICE_CLASS_HUMIDITY,
|
DEVICE_CLASS_HUMIDITY,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
DEVICE_CLASS_TEMPERATURE,
|
DEVICE_CLASS_TEMPERATURE,
|
||||||
|
ENERGY_KILO_WATT_HOUR,
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
|
POWER_WATT,
|
||||||
TEMP_CELSIUS,
|
TEMP_CELSIUS,
|
||||||
)
|
)
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
@ -67,6 +71,24 @@ async def async_setup_platform(
|
|||||||
CONCENTRATION_PARTS_PER_MILLION,
|
CONCENTRATION_PARTS_PER_MILLION,
|
||||||
14,
|
14,
|
||||||
),
|
),
|
||||||
|
DemoSensor(
|
||||||
|
"sensor_5",
|
||||||
|
"Power consumption",
|
||||||
|
100,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
|
POWER_WATT,
|
||||||
|
None,
|
||||||
|
),
|
||||||
|
DemoSensor(
|
||||||
|
"sensor_6",
|
||||||
|
"Today energy",
|
||||||
|
15,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
|
ENERGY_KILO_WATT_HOUR,
|
||||||
|
None,
|
||||||
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -49,7 +49,6 @@ class DemoSwitch(SwitchEntity):
|
|||||||
self._attr_icon = icon
|
self._attr_icon = icon
|
||||||
self._attr_is_on = state
|
self._attr_is_on = state
|
||||||
self._attr_name = name or DEVICE_DEFAULT_NAME
|
self._attr_name = name or DEVICE_DEFAULT_NAME
|
||||||
self._attr_today_energy_kwh = 15
|
|
||||||
self._attr_unique_id = unique_id
|
self._attr_unique_id = unique_id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -63,11 +62,9 @@ class DemoSwitch(SwitchEntity):
|
|||||||
def turn_on(self, **kwargs):
|
def turn_on(self, **kwargs):
|
||||||
"""Turn the switch on."""
|
"""Turn the switch on."""
|
||||||
self._attr_is_on = True
|
self._attr_is_on = True
|
||||||
self._attr_current_power_w = 100
|
|
||||||
self.schedule_update_ha_state()
|
self.schedule_update_ha_state()
|
||||||
|
|
||||||
def turn_off(self, **kwargs):
|
def turn_off(self, **kwargs):
|
||||||
"""Turn the device off."""
|
"""Turn the device off."""
|
||||||
self._attr_is_on = False
|
self._attr_is_on = False
|
||||||
self._attr_current_power_w = 0
|
|
||||||
self.schedule_update_ha_state()
|
self.schedule_update_ha_state()
|
||||||
|
88
tests/components/demo/test_switch.py
Normal file
88
tests/components/demo/test_switch.py
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
"""The tests for the demo switch component."""
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from homeassistant.components.demo import DOMAIN
|
||||||
|
from homeassistant.components.switch import (
|
||||||
|
DOMAIN as SWITCH_DOMAIN,
|
||||||
|
SERVICE_TURN_OFF,
|
||||||
|
SERVICE_TURN_ON,
|
||||||
|
)
|
||||||
|
from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON
|
||||||
|
from homeassistant.setup import async_setup_component
|
||||||
|
|
||||||
|
SWITCH_ENTITY_IDS = ["switch.decorative_lights", "switch.ac"]
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
async def setup_comp(hass):
|
||||||
|
"""Set up demo component."""
|
||||||
|
assert await async_setup_component(
|
||||||
|
hass, SWITCH_DOMAIN, {SWITCH_DOMAIN: {"platform": DOMAIN}}
|
||||||
|
)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("switch_entity_id", SWITCH_ENTITY_IDS)
|
||||||
|
async def test_turn_on(hass, switch_entity_id):
|
||||||
|
"""Test switch turn on method."""
|
||||||
|
await hass.services.async_call(
|
||||||
|
SWITCH_DOMAIN,
|
||||||
|
SERVICE_TURN_OFF,
|
||||||
|
{ATTR_ENTITY_ID: switch_entity_id},
|
||||||
|
blocking=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get(switch_entity_id)
|
||||||
|
assert state.state == STATE_OFF
|
||||||
|
|
||||||
|
await hass.services.async_call(
|
||||||
|
SWITCH_DOMAIN,
|
||||||
|
SERVICE_TURN_ON,
|
||||||
|
{ATTR_ENTITY_ID: switch_entity_id},
|
||||||
|
blocking=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get(switch_entity_id)
|
||||||
|
assert state.state == STATE_ON
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("switch_entity_id", SWITCH_ENTITY_IDS)
|
||||||
|
async def test_turn_off(hass, switch_entity_id):
|
||||||
|
"""Test switch turn off method."""
|
||||||
|
await hass.services.async_call(
|
||||||
|
SWITCH_DOMAIN,
|
||||||
|
SERVICE_TURN_ON,
|
||||||
|
{ATTR_ENTITY_ID: switch_entity_id},
|
||||||
|
blocking=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get(switch_entity_id)
|
||||||
|
assert state.state == STATE_ON
|
||||||
|
|
||||||
|
await hass.services.async_call(
|
||||||
|
SWITCH_DOMAIN,
|
||||||
|
SERVICE_TURN_OFF,
|
||||||
|
{ATTR_ENTITY_ID: switch_entity_id},
|
||||||
|
blocking=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get(switch_entity_id)
|
||||||
|
assert state.state == STATE_OFF
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("switch_entity_id", SWITCH_ENTITY_IDS)
|
||||||
|
async def test_turn_off_without_entity_id(hass, switch_entity_id):
|
||||||
|
"""Test switch turn off all switches."""
|
||||||
|
await hass.services.async_call(
|
||||||
|
SWITCH_DOMAIN, SERVICE_TURN_ON, {ATTR_ENTITY_ID: "all"}, blocking=True
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get(switch_entity_id)
|
||||||
|
assert state.state == STATE_ON
|
||||||
|
|
||||||
|
await hass.services.async_call(
|
||||||
|
SWITCH_DOMAIN, SERVICE_TURN_OFF, {ATTR_ENTITY_ID: "all"}, blocking=True
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get(switch_entity_id)
|
||||||
|
assert state.state == STATE_OFF
|
@ -217,6 +217,12 @@ async def test_switch_power(hass):
|
|||||||
SWITCH_DOMAIN, SERVICE_TURN_ON, {ATTR_ENTITY_ID: ENTITY_SWITCH}, blocking=True
|
SWITCH_DOMAIN, SERVICE_TURN_ON, {ATTR_ENTITY_ID: ENTITY_SWITCH}, blocking=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
hass.states.async_set(
|
||||||
|
ENTITY_SWITCH,
|
||||||
|
STATE_ON,
|
||||||
|
attributes={ATTR_CURRENT_POWER_W: 100, ATTR_FRIENDLY_NAME: "AC"},
|
||||||
|
)
|
||||||
|
|
||||||
switch = hass.states.get(ENTITY_SWITCH)
|
switch = hass.states.get(ENTITY_SWITCH)
|
||||||
assert switch.state == STATE_ON
|
assert switch.state == STATE_ON
|
||||||
power = switch.attributes[ATTR_CURRENT_POWER_W]
|
power = switch.attributes[ATTR_CURRENT_POWER_W]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user