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_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"}
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_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_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_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_override_by_glob():
    """Test values with glob match."""
    store = EV(glob={"test.?e*": {"key": "value"}})
    assert store.get(ent) == {"key": "value"}
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_override_by_domain():
    """Test values with domain match."""
    store = EV(domain={'test': {'key': 'value'}})
    assert store.get(ent) == {'key': 'value'}