def test_expression_cannot_be_indirectly_recursive(): args = { 'foo': '${bar}', 'bar': '${bing}', 'bing': '${baz}', 'baz': '${foo}' } cfg = Registry().add(args) with pytest.raises(Exception): cfg.resolve()
def test_registry_updated_with_new_dict_adds_those_items(): items = {'a': 10} reg = Registry().add(items) newitems = {'a': 20, 'b': 100} reg.add(newitems) assert reg.resolve()['a'] == newitems['a'] assert reg.resolve()['b'] == newitems['b']
def test_expression_cannot_be_reflective(): args = {'foo': '${bar}', 'bar': '${foo}'} cfg = Registry().add(args) with pytest.raises(Exception): cfg.resolve()
def test_keys_sent_with_separation_char_are_retrieved_with_usual_selection(): items = {'a': {'foo.bar': 100}} reg = Registry().add(items) assert reg.resolve()['a']['foo.bar'] == items['a']['foo.bar'] assert reg.resolve().a.foo.bar == items['a']['foo.bar']
def test_using_keys_containing_key_separation_char_appear_as_keys(): items = {'foo.bar': 100} reg = Registry().add(items) assert reg.resolve()['foo']['bar'] == items['foo.bar']