Beispiel #1
0
def test_exception_on_source_for_missing_key():
    d = ConfigTree(layers=['inner', 'outer'])
    d._read_dict({'test_key': 'test_value'},
                 layer='inner',
                 source='initial_load')

    with pytest.raises(KeyError) as excinfo:
        d.metadata('missing_key')
    assert 'missing_key' in str(excinfo.value)
Beispiel #2
0
def test_read_dict():
    d = ConfigTree(layers=['inner', 'outer'])
    d._read_dict({
        'test_key': 'test_value',
        'test_key2': 'test_value2'
    },
                 layer='inner')
    d._read_dict({'test_key': 'test_value3'}, layer='outer')

    assert d.test_key == 'test_value3'
    assert d.test_key2 == 'test_value2'
Beispiel #3
0
def test_source_metadata():
    d = ConfigTree(layers=['inner', 'outer'])
    d._read_dict({'test_key': 'test_value'},
                 layer='inner',
                 source='initial_load')
    d._read_dict({'test_key': 'test_value2'}, layer='outer', source='update')

    assert d.metadata('test_key') == [{
        'layer': 'inner',
        'default': False,
        'source': 'initial_load',
        'value': 'test_value'
    }, {
        'layer': 'outer',
        'default': True,
        'source': 'update',
        'value': 'test_value2'
    }]
Beispiel #4
0
def test_reset_layer_with_preserved_keys_at_depth():
    d = ConfigTree(layers=['a', 'b', 'c'])
    d._read_dict(
        {
            'test_key': {
                'test_key2': 'test_value',
                'test_key3': {
                    'test_key4': 'test_value2'
                }
            },
            'test_key5': {
                'test_key6': 'test_value3',
                'test_key7': 'test_value4'
            }
        },
        layer='a')
    d._read_dict(
        {
            'test_key': {
                'test_key2': 'test_value5',
                'test_key3': {
                    'test_key4': 'test_value6'
                }
            },
            'test_key5': {
                'test_key6': 'test_value7',
                'test_key7': 'test_value8',
            }
        },
        layer='b')

    d.reset_layer('b',
                  preserve_keys=['test_key.test_key3', 'test_key5.test_key6'])
    assert d.test_key.test_key2 == 'test_value'
    assert d.test_key.test_key3.test_key4 == 'test_value6'
    assert d.test_key5.test_key6 == 'test_value7'
    assert d.test_key5.test_key7 == 'test_value4'
Beispiel #5
0
def test_read_dict_nested():
    d = ConfigTree(layers=['inner', 'outer'])
    d._read_dict(
        {
            'test_container': {
                'test_key': 'test_value',
                'test_key2': 'test_value2'
            }
        },
        layer='inner')
    d._read_dict({'test_container': {
        'test_key': 'test_value3'
    }},
                 layer='inner')

    assert d.test_container.test_key == 'test_value3'
    assert d.test_container.test_key2 == 'test_value2'

    d._read_dict({'test_container': {
        'test_key2': 'test_value4'
    }},
                 layer='outer')

    assert d.test_container.test_key2 == 'test_value4'