def test_insert_complex_objects(): tree = OrderedTree() obj = { "test": "foo", "foo": "bar" } tree.insert('root', obj) print_yaml("After inserting a dict", tree) assert 'root.test' in tree assert 'root.foo' in tree assert isinstance(tree['root'], OrderedTree) assert isinstance(tree['root.foo'], OrderedTree) is False assert tree['root.test'] == 'foo' assert tree['root.foo'] == 'bar' # add to existing tree another_dict = { "bar": { "baz": { "boo": "baaaad" } } } tree.insert('root', another_dict) assert 'root.test' in tree assert 'root.foo' in tree assert 'root.bar' in tree assert isinstance(tree['root'], OrderedTree) assert isinstance(tree['root.foo'], OrderedTree) is False assert tree['root.test'] == 'foo' assert tree['root.foo'] == 'bar' print_yaml("inserting a complex dict", tree) replace_foo = { 'foo': { 'bar': 'baz' } } tree.insert('root', replace_foo) assert 'root.test' in tree assert 'root.foo' in tree assert 'root.bar' in tree assert isinstance(tree['root'], OrderedTree) assert isinstance(tree['root.foo'], OrderedTree) assert isinstance(tree['root.foo.bar'], OrderedTree) is False assert tree['root.foo'] != 'bar' print_yaml("replace foo", tree) tree['root.array'] = range(4) print_yaml("insert and array", tree) assert 'root.array' in tree assert isinstance(tree['root.array'], OrderedTree) is False tree['root.array.array'] = range(4) assert 'root.array' in tree assert 'root.array.array' in tree assert isinstance(tree['root.array'], OrderedTree)
def test_insert(): tree = OrderedTree() logging.debug(tree) tree.insert('foo.bar', 'moomoo') assert 'foo' in tree assert 'foo.bar' in tree assert tree['foo.bar'] == 'moomoo' assert tree['foo']['bar'] == 'moomoo' print_yaml("After foo.bar", tree) tree.insert('foobar', 'moomoo') tree.insert('foo.bar.baz', 'moomoo') assert tree['foo.bar'] != 'moomoo' assert tree['foo.bar.baz'] == 'moomoo' print_yaml("foo.bar overridden ", tree) x = tree['foo.bar'] x['x.y.z'] = 'blah blah' print_yaml("sub-tree x", x) print_yaml("extend sub-tree foo.bar ", tree) assert x['x.y.z'] == 'blah blah' assert 'foo' in tree assert 'foo.bar' in tree assert tree['foo.bar.x.y.z'] == 'blah blah'