Simplify customize (#6007)
* Simplify customize * Maintain glob order * Have glob overrule domain
This commit is contained in:
parent
eb9400de4c
commit
235d0057b1
9 changed files with 163 additions and 266 deletions
68
tests/helpers/test_entity_values.py
Normal file
68
tests/helpers/test_entity_values.py
Normal file
|
@ -0,0 +1,68 @@
|
|||
"""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'
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue