Example #1
0
    def testDelValue(self):
        # Level 1: Deleting a value from NamespaceVAlue
        nv = NamespaceValue()
        nv.SetValueWithFlags(('alpha',), 'ALPHA')
        nv.SetValueWithFlags(('bravo',), 'BRAVO')

        assert nv.GetValueWithFlags(('alpha',)) == 'ALPHA'
        assert nv.GetValueWithFlags(('bravo',)) == 'BRAVO'

        nv.DelValueWithFlags(('alpha',))

        assert nv.GetValueWithFlags(('alpha',)) is None
        assert nv.GetValueWithFlags(('bravo',)) == 'BRAVO'

        # Level 2: Deleting a value from the namespace.

        n = Namespace()
        n[':alpha'] = 'ALPHA'
        n[':bravo'] = 'BRAVO'
        n[':charlie'] = 'CHARLIE'

        n['var'] = 'value'
        n['alpha:var'] = 'value-alpha'
        n['bravo:var'] = 'value-bravo'

        assert n['var'] == 'value'
        assert n['alpha:var'] == 'value-alpha'
        assert n['bravo:var'] == 'value-bravo'
        assert n['charlie:var'] == 'value'

        del n['alpha:var']

        assert n['var'] == 'value'
        assert n['alpha:var'] == 'value'
        assert n['bravo:var'] == 'value-bravo'
        assert n['charlie:var'] == 'value'

        n.ClearValue('var')

        with pytest.raises(NamespaceKeyError):
            n.__getitem__('var')
        with pytest.raises(NamespaceKeyError):
            n.__getitem__('alpha:var')
        with pytest.raises(NamespaceKeyError):
            n.__getitem__('bravo:var')
        with pytest.raises(NamespaceKeyError):
            n.__getitem__('bravo:var')
        with pytest.raises(NamespaceKeyError):
            n.__getitem__('charlie:var')