1
mirror of https://github.com/home-assistant/core synced 2024-10-04 07:58:43 +02:00
ha-core/tests/helpers/test_entity_values.py
Paulus Schoutsen 235d0057b1 Simplify customize (#6007)
* Simplify customize

* Maintain glob order

* Have glob overrule domain
2017-02-15 19:47:30 -08:00

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'
}