def test_checkpoint():
    d = NameFilterContext(names=['a', 'b'])
    d['a'] = object()
    d['b'] = object()
    copy = d.checkpoint()
    assert copy is not d
    assert copy.subcontext is not d.subcontext
    assert set(copy.keys()) == set(d.keys())
    assert copy['a'] is d['a']
    assert copy['b'] is d['b']

    assert copy.names == d.names
    assert copy.names is not d.names
def test_checkpoint():
    d = NameFilterContext(names=['a', 'b'])
    d['a'] = object()
    d['b'] = object()
    copy = d.checkpoint()
    assert copy is not d
    assert copy.subcontext is not d.subcontext
    assert set(copy.keys()) == set(d.keys())
    assert copy['a'] is d['a']
    assert copy['b'] is d['b']

    assert copy.names == d.names
    assert copy.names is not d.names