Пример #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:
        source = d.metadata('missing_key')
    assert 'missing_key' in str(excinfo.value)
Пример #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'
Пример #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'
    }]
Пример #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_key.test_key5.test_key6'])
    d.test_key.test_key2 == 'test_value'
    d.test_key.test_key3.test_key4 == 'test_value6'
    d.test_key5.test_key6 == 'test_value7'
    d.test_key5.test_key7 == 'test_value4'
Пример #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'