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()
Exemple #2
0
 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
Exemple #4
0
    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()