def test_configtree_pop(self): config_tree = ConfigTree() config_tree.put("string", "string") assert config_tree.pop("string", "default") == "string" assert config_tree.pop("string-new", "default") == "default" assert config_tree == ConfigTree() with pytest.raises(ConfigMissingException): assert config_tree.pop("string-new") config_tree.put("list", [1, 2, 3]) assert config_tree.pop("list", [4]) == [1, 2, 3] assert config_tree.pop("list-new", [4]) == [4] assert config_tree == ConfigTree() config_tree.put("config", {'a': 5}) assert config_tree.pop("config", {'b': 1}) == {'a': 5} assert config_tree.pop("config-new", {'b': 1}) == {'b': 1} assert config_tree == ConfigTree() config_tree = ConfigTree() config_tree.put('key', 'value') assert config_tree.pop('key', 'value') == 'value' assert 'key' not in config_tree config_tree = ConfigTree() config_tree.put('a.b.c.one', 1) config_tree.put('a.b.c.two', 2) config_tree.put('"f.k".g.three', 3) exp = OrderedDict() exp['a'] = OrderedDict() exp['a']['b'] = OrderedDict() exp['a']['b']['c'] = OrderedDict() exp['a']['b']['c']['one'] = 1 exp['a']['b']['c']['two'] = 2 exp['f.k'] = OrderedDict() exp['f.k']['g'] = OrderedDict() exp['f.k']['g']['three'] = 3 assert config_tree.pop( 'a.b.c').as_plain_ordered_dict() == exp['a']['b']['c'] assert config_tree.pop('a.b.c', None) is None with pytest.raises(ConfigMissingException): assert config_tree.pop('a.b.c') with pytest.raises(ConfigMissingException): assert config_tree['a']['b'].pop('c') assert config_tree.pop('a').as_plain_ordered_dict() == OrderedDict( b=OrderedDict()) assert config_tree.pop('"f.k"').as_plain_ordered_dict() == OrderedDict( g=OrderedDict(three=3)) assert config_tree.as_plain_ordered_dict() == OrderedDict()
def test_plain_ordered_dict(self): config_tree = ConfigTree() config_tree.put('"a.b"', 5) config_tree.put('a."b.c"', [ConfigTree(), 2]) config_tree.get('a."b.c"')[0].put('"c.d"', 1) d = OrderedDict() d['a.b'] = 5 d['a'] = OrderedDict() d['a']['b.c'] = [OrderedDict(), 2] d['a']['b.c'][0]['c.d'] = 1 assert config_tree.as_plain_ordered_dict() == d
def test_plain_ordered_dict(self): config_tree = ConfigTree() config_tree.put('"a.b"', 5) config_tree.put('a."b.c"', [ConfigTree(), 2]) config_tree.get('a."b.c"')[0].put('"c.d"', 1) d = OrderedDict() d['a.b'] = 5 d['a'] = OrderedDict() d['a']['b.c'] = [OrderedDict(), 2] d['a']['b.c'][0]['c.d'] = 1 assert config_tree.as_plain_ordered_dict() == d
def test_configtree_pop(self): config_tree = ConfigTree() config_tree.put("string", "string") assert config_tree.pop("string", "default") == "string" assert config_tree.pop("string-new", "default") == "default" assert config_tree == ConfigTree() with pytest.raises(ConfigMissingException): assert config_tree.pop("string-new") config_tree.put("list", [1, 2, 3]) assert config_tree.pop("list", [4]) == [1, 2, 3] assert config_tree.pop("list-new", [4]) == [4] assert config_tree == ConfigTree() config_tree.put("config", {'a': 5}) assert config_tree.pop("config", {'b': 1}) == {'a': 5} assert config_tree.pop("config-new", {'b': 1}) == {'b': 1} assert config_tree == ConfigTree() config_tree = ConfigTree() config_tree.put('key', 'value') assert config_tree.pop('key', 'value') == 'value' assert 'key' not in config_tree config_tree = ConfigTree() config_tree.put('a.b.c.one', 1) config_tree.put('a.b.c.two', 2) config_tree.put('"f.k".g.three', 3) exp = OrderedDict() exp['a'] = OrderedDict() exp['a']['b'] = OrderedDict() exp['a']['b']['c'] = OrderedDict() exp['a']['b']['c']['one'] = 1 exp['a']['b']['c']['two'] = 2 exp['f.k'] = OrderedDict() exp['f.k']['g'] = OrderedDict() exp['f.k']['g']['three'] = 3 assert config_tree.pop('a.b.c').as_plain_ordered_dict() == exp['a']['b']['c'] assert config_tree.pop('a.b.c', None) is None with pytest.raises(ConfigMissingException): assert config_tree.pop('a.b.c') with pytest.raises(ConfigMissingException): assert config_tree['a']['b'].pop('c') assert config_tree.pop('a').as_plain_ordered_dict() == OrderedDict(b=OrderedDict()) assert config_tree.pop('"f.k"').as_plain_ordered_dict() == OrderedDict(g=OrderedDict(three=3)) assert config_tree.as_plain_ordered_dict() == OrderedDict()