Fix issue parsing color effect None in flux_led (#57979)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
parent
9a26a8cfd8
commit
708f2ae089
2 changed files with 61 additions and 9 deletions
|
@ -741,18 +741,23 @@ async def test_rgb_light_custom_effects(hass: HomeAssistant) -> None:
|
|||
assert attributes[ATTR_EFFECT] == "custom"
|
||||
|
||||
|
||||
async def test_rgb_light_custom_effects_invalid_colors(hass: HomeAssistant) -> None:
|
||||
@pytest.mark.parametrize("effect_colors", [":: CANNOT BE PARSED ::", None])
|
||||
async def test_rgb_light_custom_effects_invalid_colors(
|
||||
hass: HomeAssistant, effect_colors: str
|
||||
) -> None:
|
||||
"""Test an rgb light with a invalid effect."""
|
||||
options = {
|
||||
CONF_MODE: MODE_AUTO,
|
||||
CONF_CUSTOM_EFFECT_SPEED_PCT: 88,
|
||||
CONF_CUSTOM_EFFECT_TRANSITION: TRANSITION_JUMP,
|
||||
}
|
||||
if effect_colors:
|
||||
options[CONF_CUSTOM_EFFECT_COLORS] = effect_colors
|
||||
config_entry = MockConfigEntry(
|
||||
domain=DOMAIN,
|
||||
data={CONF_HOST: IP_ADDRESS, CONF_NAME: DEFAULT_ENTRY_TITLE},
|
||||
options=options,
|
||||
unique_id=MAC_ADDRESS,
|
||||
options={
|
||||
CONF_MODE: MODE_AUTO,
|
||||
CONF_CUSTOM_EFFECT_COLORS: ":: CANNOT BE PARSED ::",
|
||||
CONF_CUSTOM_EFFECT_SPEED_PCT: 88,
|
||||
CONF_CUSTOM_EFFECT_TRANSITION: TRANSITION_JUMP,
|
||||
},
|
||||
)
|
||||
config_entry.add_to_hass(hass)
|
||||
bulb = _mocked_bulb()
|
||||
|
@ -827,7 +832,7 @@ async def test_rgb_light_custom_effect_via_service(
|
|||
bulb.async_set_custom_pattern.reset_mock()
|
||||
|
||||
|
||||
async def test_migrate_from_yaml(hass: HomeAssistant) -> None:
|
||||
async def test_migrate_from_yaml_with_custom_effect(hass: HomeAssistant) -> None:
|
||||
"""Test migrate from yaml."""
|
||||
config = {
|
||||
LIGHT_DOMAIN: [
|
||||
|
@ -876,6 +881,50 @@ async def test_migrate_from_yaml(hass: HomeAssistant) -> None:
|
|||
}
|
||||
|
||||
|
||||
async def test_migrate_from_yaml_no_custom_effect(hass: HomeAssistant) -> None:
|
||||
"""Test migrate from yaml."""
|
||||
config = {
|
||||
LIGHT_DOMAIN: [
|
||||
{
|
||||
CONF_PLATFORM: DOMAIN,
|
||||
CONF_DEVICES: {
|
||||
IP_ADDRESS: {
|
||||
CONF_NAME: "flux_lamppost",
|
||||
CONF_PROTOCOL: "ledenet",
|
||||
}
|
||||
},
|
||||
}
|
||||
],
|
||||
}
|
||||
with _patch_discovery(), _patch_wifibulb():
|
||||
await async_setup_component(hass, LIGHT_DOMAIN, config)
|
||||
await hass.async_block_till_done()
|
||||
await hass.async_block_till_done()
|
||||
await hass.async_block_till_done()
|
||||
|
||||
entries = hass.config_entries.async_entries(DOMAIN)
|
||||
assert entries
|
||||
|
||||
migrated_entry = None
|
||||
for entry in entries:
|
||||
if entry.unique_id == MAC_ADDRESS:
|
||||
migrated_entry = entry
|
||||
break
|
||||
|
||||
assert migrated_entry is not None
|
||||
assert migrated_entry.data == {
|
||||
CONF_HOST: IP_ADDRESS,
|
||||
CONF_NAME: "flux_lamppost",
|
||||
CONF_PROTOCOL: "ledenet",
|
||||
}
|
||||
assert migrated_entry.options == {
|
||||
CONF_MODE: "auto",
|
||||
CONF_CUSTOM_EFFECT_COLORS: None,
|
||||
CONF_CUSTOM_EFFECT_SPEED_PCT: 50,
|
||||
CONF_CUSTOM_EFFECT_TRANSITION: "gradual",
|
||||
}
|
||||
|
||||
|
||||
async def test_addressable_light(hass: HomeAssistant) -> None:
|
||||
"""Test an addressable light."""
|
||||
config_entry = MockConfigEntry(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue