Small tweaks of switch_as_x tests (#68195)
This commit is contained in:
parent
0c4efae31f
commit
f026245cb4
2 changed files with 62 additions and 88 deletions
|
@ -12,8 +12,18 @@ from homeassistant.core import HomeAssistant
|
|||
from homeassistant.data_entry_flow import RESULT_TYPE_CREATE_ENTRY, RESULT_TYPE_FORM
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
|
||||
from tests.common import MockConfigEntry
|
||||
|
||||
@pytest.mark.parametrize("target_domain", (Platform.LIGHT,))
|
||||
PLATFORMS_TO_TEST = (
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_config_flow(
|
||||
hass: HomeAssistant,
|
||||
target_domain: Platform,
|
||||
|
@ -59,7 +69,7 @@ async def test_config_flow(
|
|||
(None, er.RegistryEntryHider.INTEGRATION.value),
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize("target_domain", (Platform.LIGHT,))
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_config_flow_registered_entity(
|
||||
hass: HomeAssistant,
|
||||
target_domain: Platform,
|
||||
|
@ -110,29 +120,26 @@ async def test_config_flow_registered_entity(
|
|||
assert switch_entity_entry.hidden_by == hidden_by_after
|
||||
|
||||
|
||||
@pytest.mark.parametrize("target_domain", (Platform.LIGHT,))
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_options(
|
||||
hass: HomeAssistant,
|
||||
target_domain: Platform,
|
||||
mock_setup_entry: AsyncMock,
|
||||
) -> None:
|
||||
"""Test reconfiguring."""
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||
)
|
||||
assert result["type"] == RESULT_TYPE_FORM
|
||||
assert result["errors"] is None
|
||||
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"],
|
||||
{
|
||||
switch_as_x_config_entry = MockConfigEntry(
|
||||
data={},
|
||||
domain=DOMAIN,
|
||||
options={
|
||||
CONF_ENTITY_ID: "switch.ceiling",
|
||||
CONF_TARGET_DOMAIN: target_domain,
|
||||
},
|
||||
title="ABC",
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
switch_as_x_config_entry.add_to_hass(hass)
|
||||
|
||||
assert result["type"] == RESULT_TYPE_CREATE_ENTRY
|
||||
assert await hass.config_entries.async_setup(switch_as_x_config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
config_entry = hass.config_entries.async_entries(DOMAIN)[0]
|
||||
assert config_entry
|
||||
|
|
|
@ -6,23 +6,31 @@ from unittest.mock import patch
|
|||
import pytest
|
||||
|
||||
from homeassistant.components.switch_as_x.const import CONF_TARGET_DOMAIN, DOMAIN
|
||||
from homeassistant.const import CONF_ENTITY_ID, STATE_OFF, STATE_ON, Platform
|
||||
from homeassistant.const import (
|
||||
CONF_ENTITY_ID,
|
||||
STATE_CLOSED,
|
||||
STATE_LOCKED,
|
||||
STATE_OFF,
|
||||
STATE_ON,
|
||||
STATE_OPEN,
|
||||
STATE_UNLOCKED,
|
||||
Platform,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
|
||||
from tests.common import MockConfigEntry
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target_domain",
|
||||
(
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
),
|
||||
PLATFORMS_TO_TEST = (
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_config_entry_unregistered_uuid(
|
||||
hass: HomeAssistant, target_domain: str
|
||||
) -> None:
|
||||
|
@ -48,19 +56,23 @@ async def test_config_entry_unregistered_uuid(
|
|||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target_domain",
|
||||
"target_domain,state_on,state_off",
|
||||
(
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.SIREN,
|
||||
(Platform.COVER, STATE_OPEN, STATE_CLOSED),
|
||||
(Platform.FAN, STATE_ON, STATE_OFF),
|
||||
(Platform.LIGHT, STATE_ON, STATE_OFF),
|
||||
(Platform.LOCK, STATE_UNLOCKED, STATE_LOCKED),
|
||||
(Platform.SIREN, STATE_ON, STATE_OFF),
|
||||
),
|
||||
)
|
||||
async def test_entity_registry_events(hass: HomeAssistant, target_domain: str) -> None:
|
||||
async def test_entity_registry_events(
|
||||
hass: HomeAssistant, target_domain: str, state_on: str, state_off: str
|
||||
) -> None:
|
||||
"""Test entity registry events are tracked."""
|
||||
registry = er.async_get(hass)
|
||||
registry_entry = registry.async_get_or_create("switch", "test", "unique")
|
||||
switch_entity_id = registry_entry.entity_id
|
||||
hass.states.async_set(switch_entity_id, "on")
|
||||
hass.states.async_set(switch_entity_id, STATE_ON)
|
||||
|
||||
config_entry = MockConfigEntry(
|
||||
data={},
|
||||
|
@ -77,7 +89,7 @@ async def test_entity_registry_events(hass: HomeAssistant, target_domain: str) -
|
|||
assert await hass.config_entries.async_setup(config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get(f"{target_domain}.abc").state == STATE_ON
|
||||
assert hass.states.get(f"{target_domain}.abc").state == state_on
|
||||
|
||||
# Change entity_id
|
||||
new_switch_entity_id = f"{switch_entity_id}_new"
|
||||
|
@ -87,12 +99,12 @@ async def test_entity_registry_events(hass: HomeAssistant, target_domain: str) -
|
|||
|
||||
# Check tracking the new entity_id
|
||||
await hass.async_block_till_done()
|
||||
assert hass.states.get(f"{target_domain}.abc").state == STATE_OFF
|
||||
assert hass.states.get(f"{target_domain}.abc").state == state_off
|
||||
|
||||
# The old entity_id should no longer be tracked
|
||||
hass.states.async_set(switch_entity_id, STATE_ON)
|
||||
await hass.async_block_till_done()
|
||||
assert hass.states.get(f"{target_domain}.abc").state == STATE_OFF
|
||||
assert hass.states.get(f"{target_domain}.abc").state == state_off
|
||||
|
||||
# Check changing name does not reload the config entry
|
||||
with patch(
|
||||
|
@ -111,16 +123,7 @@ async def test_entity_registry_events(hass: HomeAssistant, target_domain: str) -
|
|||
assert len(hass.config_entries.async_entries("switch_as_x")) == 0
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target_domain",
|
||||
(
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_device_registry_config_entry_1(
|
||||
hass: HomeAssistant, target_domain: str
|
||||
) -> None:
|
||||
|
@ -178,16 +181,7 @@ async def test_device_registry_config_entry_1(
|
|||
assert switch_as_x_config_entry.entry_id not in device_entry.config_entries
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target_domain",
|
||||
(
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_device_registry_config_entry_2(
|
||||
hass: HomeAssistant, target_domain: str
|
||||
) -> None:
|
||||
|
@ -238,16 +232,7 @@ async def test_device_registry_config_entry_2(
|
|||
assert switch_as_x_config_entry.entry_id not in device_entry.config_entries
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target_domain",
|
||||
(
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_config_entry_entity_id(
|
||||
hass: HomeAssistant, target_domain: Platform
|
||||
) -> None:
|
||||
|
@ -282,16 +267,7 @@ async def test_config_entry_entity_id(
|
|||
assert entity_entry.unique_id == config_entry.entry_id
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target_domain",
|
||||
(
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_config_entry_uuid(hass: HomeAssistant, target_domain: Platform) -> None:
|
||||
"""Test light switch setup from config entry with entity registry id."""
|
||||
registry = er.async_get(hass)
|
||||
|
@ -315,16 +291,7 @@ async def test_config_entry_uuid(hass: HomeAssistant, target_domain: Platform) -
|
|||
assert hass.states.get(f"{target_domain}.abc")
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target_domain",
|
||||
(
|
||||
Platform.COVER,
|
||||
Platform.FAN,
|
||||
Platform.LIGHT,
|
||||
Platform.LOCK,
|
||||
Platform.SIREN,
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_device(hass: HomeAssistant, target_domain: Platform) -> None:
|
||||
"""Test the entity is added to the wrapped entity's device."""
|
||||
device_registry = dr.async_get(hass)
|
||||
|
@ -360,7 +327,7 @@ async def test_device(hass: HomeAssistant, target_domain: Platform) -> None:
|
|||
assert entity_entry.device_id == switch_entity_entry.device_id
|
||||
|
||||
|
||||
@pytest.mark.parametrize("target_domain", (Platform.LIGHT,))
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_setup_and_remove_config_entry(
|
||||
hass: HomeAssistant,
|
||||
target_domain: Platform,
|
||||
|
@ -391,8 +358,8 @@ async def test_setup_and_remove_config_entry(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Check the state and entity registry entry are removed
|
||||
assert hass.states.get(f"{target_domain}.my_min_max") is None
|
||||
assert registry.async_get(f"{target_domain}.my_min_max") is None
|
||||
assert hass.states.get(f"{target_domain}.abc") is None
|
||||
assert registry.async_get(f"{target_domain}.abc") is None
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
@ -402,7 +369,7 @@ async def test_setup_and_remove_config_entry(
|
|||
(er.RegistryEntryHider.INTEGRATION.value, None),
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize("target_domain", (Platform.LIGHT,))
|
||||
@pytest.mark.parametrize("target_domain", PLATFORMS_TO_TEST)
|
||||
async def test_reset_hidden_by(
|
||||
hass: HomeAssistant,
|
||||
target_domain: Platform,
|
||||
|
|
Loading…
Add table
Reference in a new issue