mirror of
https://github.com/home-assistant/core.git
synced 2025-12-26 22:18:40 +00:00
Add D-link tests (#86825)
* Fix D-Link config flow auth * Add tests to D-Link * pyupgrade
This commit is contained in:
77
tests/components/dlink/test_switch.py
Normal file
77
tests/components/dlink/test_switch.py
Normal file
@@ -0,0 +1,77 @@
|
||||
"""Switch tests for the D-Link Smart Plug integration."""
|
||||
from collections.abc import Awaitable, Callable
|
||||
|
||||
from homeassistant.components.dlink import DOMAIN
|
||||
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID,
|
||||
SERVICE_TURN_OFF,
|
||||
SERVICE_TURN_ON,
|
||||
STATE_OFF,
|
||||
STATE_ON,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from .conftest import ComponentSetup
|
||||
|
||||
from tests.components.repairs import get_repairs
|
||||
|
||||
|
||||
async def test_switch_state(
|
||||
hass: HomeAssistant,
|
||||
hass_ws_client: Callable[[HomeAssistant], Awaitable[None]],
|
||||
setup_integration: ComponentSetup,
|
||||
) -> None:
|
||||
"""Test we get the switch status."""
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
SWITCH_DOMAIN,
|
||||
{
|
||||
SWITCH_DOMAIN: {
|
||||
"platform": DOMAIN,
|
||||
"host": "1.2.3.4",
|
||||
"username": "admin",
|
||||
"password": "123456",
|
||||
"use_legacy_protocol": True,
|
||||
}
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
issues = await get_repairs(hass, hass_ws_client)
|
||||
assert len(issues) == 1
|
||||
assert issues[0]["issue_id"] == "deprecated_yaml"
|
||||
|
||||
await setup_integration()
|
||||
|
||||
entity_id = "switch.mock_title_switch"
|
||||
state = hass.states.get(entity_id)
|
||||
assert state.state == STATE_OFF
|
||||
assert state.attributes["total_consumption"] == 1040.0
|
||||
assert state.attributes["temperature"] == 33
|
||||
await hass.services.async_call(
|
||||
SWITCH_DOMAIN,
|
||||
SERVICE_TURN_ON,
|
||||
{ATTR_ENTITY_ID: [entity_id]},
|
||||
blocking=True,
|
||||
)
|
||||
assert hass.states.get(entity_id).state == STATE_ON
|
||||
await hass.services.async_call(
|
||||
SWITCH_DOMAIN,
|
||||
SERVICE_TURN_OFF,
|
||||
{ATTR_ENTITY_ID: [entity_id]},
|
||||
blocking=True,
|
||||
)
|
||||
assert hass.states.get(entity_id).state == STATE_OFF
|
||||
|
||||
|
||||
async def test_switch_no_value(
|
||||
hass: HomeAssistant, setup_integration_legacy: ComponentSetup
|
||||
) -> None:
|
||||
"""Test we handle 'N/A' being passed by the pypi package."""
|
||||
await setup_integration_legacy()
|
||||
|
||||
state = hass.states.get("switch.mock_title_switch")
|
||||
assert state.state == STATE_OFF
|
||||
assert state.attributes["total_consumption"] is None
|
||||
assert state.attributes["temperature"] is None
|
||||
Reference in New Issue
Block a user