mirror of https://github.com/home-assistant/core
64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
"""Test the Remote significant change platform."""
|
|
|
|
from homeassistant.components.remote import ATTR_ACTIVITY_LIST, ATTR_CURRENT_ACTIVITY
|
|
from homeassistant.components.remote.significant_change import (
|
|
async_check_significant_change,
|
|
)
|
|
|
|
|
|
async def test_significant_change() -> None:
|
|
"""Detect Remote significant changes."""
|
|
# no change at all
|
|
attrs = {
|
|
ATTR_CURRENT_ACTIVITY: "playing",
|
|
ATTR_ACTIVITY_LIST: ["playing", "paused"],
|
|
}
|
|
assert not async_check_significant_change(None, "on", attrs, "on", attrs)
|
|
|
|
# change of state is significant
|
|
assert async_check_significant_change(None, "on", attrs, "off", attrs)
|
|
|
|
# change of current activity is significant
|
|
attrs = {
|
|
"old": {
|
|
ATTR_CURRENT_ACTIVITY: "playing",
|
|
ATTR_ACTIVITY_LIST: ["playing", "paused"],
|
|
},
|
|
"new": {
|
|
ATTR_CURRENT_ACTIVITY: "paused",
|
|
ATTR_ACTIVITY_LIST: ["playing", "paused"],
|
|
},
|
|
}
|
|
assert async_check_significant_change(None, "on", attrs["old"], "on", attrs["new"])
|
|
|
|
# change of list of possible activities is not significant
|
|
attrs = {
|
|
"old": {
|
|
ATTR_CURRENT_ACTIVITY: "playing",
|
|
ATTR_ACTIVITY_LIST: ["playing", "paused"],
|
|
},
|
|
"new": {
|
|
ATTR_CURRENT_ACTIVITY: "playing",
|
|
ATTR_ACTIVITY_LIST: ["playing"],
|
|
},
|
|
}
|
|
assert not async_check_significant_change(
|
|
None, "on", attrs["old"], "on", attrs["new"]
|
|
)
|
|
|
|
# change of any not official attribute is not significant
|
|
attrs = {
|
|
"old": {
|
|
ATTR_CURRENT_ACTIVITY: "playing",
|
|
ATTR_ACTIVITY_LIST: ["playing", "paused"],
|
|
},
|
|
"new": {
|
|
ATTR_CURRENT_ACTIVITY: "playing",
|
|
ATTR_ACTIVITY_LIST: ["playing", "paused"],
|
|
"not_official": "changed",
|
|
},
|
|
}
|
|
assert not async_check_significant_change(
|
|
None, "on", attrs["old"], "on", attrs["new"]
|
|
)
|