Example #1
0
def test_pd_basics():
    d = PersistentDict()
    assert d == {}
    d2 = d.update({1: 2}, a=10)
    assert d2 == {1: 2, 'a': 10}
    d3 = d2.update({1: NO_VALUE})
    assert d3 == {'a': 10}
    assert list(d3.keys()) == ['a']
    assert d == {}
    assert d2 == {1: 2, 'a': 10}
    assert d2 != d

    assert d2.get(1) == 2
    assert d2.get(42) is None

    assert d3['a'] == 10
    with assert_raises(KeyError):
        d[42]

    assert len(d) == 0
    assert len(d2) == 2
    assert len(d3) == 1

    r = "PersistentDict({'a': 10})"
    assert repr(d3) == r
    assert d3 == eval(r)
Example #2
0
def test_pd_update():
    d = PersistentDict()
    d = d.update({1: 2})
    assert d == {1: 2}

    d = d.update([(3, 4)])
    assert d == {1: 2, 3: 4}

    d = d.update({1: NO_VALUE, 3: NO_VALUE}, z=42)
    assert d == dict(z=42)

    d2 = d.update()
    assert d2 == d

    d2 = d2.update(d=d)
    assert d2 == dict(z=42, d=d)

    d2 = d2.update(d=d)
    assert d2 == dict(z=42, d=d)

    d = d.update([(42, 41), (42, 42)])
    assert d == {'z': 42, 42: 42}