69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
"""Test the entity values helper."""
|
|
from collections import OrderedDict
|
|
from homeassistant.helpers.entity_values import EntityValues as EV
|
|
|
|
ent = 'test.test'
|
|
|
|
|
|
def test_override_single_value():
|
|
"""Test values with exact match."""
|
|
store = EV({ent: {'key': 'value'}})
|
|
assert store.get(ent) == {'key': 'value'}
|
|
assert len(store._cache) == 1
|
|
assert store.get(ent) == {'key': 'value'}
|
|
assert len(store._cache) == 1
|
|
|
|
|
|
def test_override_by_domain():
|
|
"""Test values with domain match."""
|
|
store = EV(domain={'test': {'key': 'value'}})
|
|
assert store.get(ent) == {'key': 'value'}
|
|
|
|
|
|
def test_override_by_glob():
|
|
"""Test values with glob match."""
|
|
store = EV(glob={'test.?e*': {'key': 'value'}})
|
|
assert store.get(ent) == {'key': 'value'}
|
|
|
|
|
|
def test_glob_overrules_domain():
|
|
"""Test domain overrules glob match."""
|
|
store = EV(
|
|
domain={'test': {'key': 'domain'}},
|
|
glob={'test.?e*': {'key': 'glob'}})
|
|
assert store.get(ent) == {'key': 'glob'}
|
|
|
|
|
|
def test_exact_overrules_domain():
|
|
"""Test exact overrules domain match."""
|
|
store = EV(
|
|
exact={'test.test': {'key': 'exact'}},
|
|
domain={'test': {'key': 'domain'}},
|
|
glob={'test.?e*': {'key': 'glob'}})
|
|
assert store.get(ent) == {'key': 'exact'}
|
|
|
|
|
|
def test_merging_values():
|
|
"""Test merging glob, domain and exact configs."""
|
|
store = EV(
|
|
exact={'test.test': {'exact_key': 'exact'}},
|
|
domain={'test': {'domain_key': 'domain'}},
|
|
glob={'test.?e*': {'glob_key': 'glob'}})
|
|
assert store.get(ent) == {
|
|
'exact_key': 'exact',
|
|
'domain_key': 'domain',
|
|
'glob_key': 'glob',
|
|
}
|
|
|
|
|
|
def test_glob_order():
|
|
"""Test merging glob, domain and exact configs."""
|
|
glob = OrderedDict()
|
|
glob['test.*est'] = {"value": "first"}
|
|
glob['test.*'] = {"value": "second"}
|
|
|
|
store = EV(glob=glob)
|
|
assert store.get(ent) == {
|
|
'value': 'second'
|
|
}
|