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