def test_set(): d = immutabledict(a=1) nd = d.set('a', 1) assert nd is d d = immutabledict(a=1) nd = d.set('b', 2) assert nd == dict(a=1, b=2) assert d == dict(a=1)
def test_del(): d = immutabledict(a=1) nd = d.del_('b') assert nd is d d = immutabledict(a=1) nd = d.del_('a') assert nd == {} assert d == dict(a=1)
def test_dict_setdefault(): d = immutabledict(a=1) val, nd = d.setdefault('a', 10) assert d == dict(a=1) assert nd is d assert val == 1 d = immutabledict(a=1) val, nd = d.setdefault('b', 10) assert nd == dict(a=1, b=10) assert d == dict(a=1) assert val == 10
def mangle(gen_sym, node): fn_locals = analyze_scope(node).locals state, new_node = _mangle( dict(gen_sym=gen_sym, mangled=immutabledict()), node, ctx=dict(fn_locals=fn_locals)) return state.gen_sym, new_node
def map_reify(state, container): acc = (state.gen_sym, immutabledict()) acc, new_container = map_accum(_reify_func, acc, container) gen_sym, bindings = acc new_state = state.update(gen_sym=gen_sym, temp_bindings=state.temp_bindings.update(bindings)) return new_state, new_container
def test_update(): d = immutabledict(a=1) nd = d.update() assert nd is d d = immutabledict(a=1) nd = d.update(('b', 2)) assert nd == dict(a=1, b=2) assert d == dict(a=1) d = immutabledict(a=1) nd = d.update(b=2) assert nd == dict(a=1, b=2) assert d == dict(a=1) d = immutabledict(a=1) nd = d.update(('b', 2), c=3) assert nd == dict(a=1, b=2, c=3) assert d == dict(a=1) d = immutabledict(a=1) nd = d.update(dict(b=2), b=3) assert nd == dict(a=1, b=3) assert d == dict(a=1) d = immutabledict(a=1) nd = d.update(a=1) assert nd is d
def test_dict_clear(): d = immutabledict(a=1) nd = d.clear() assert nd == {} assert d == dict(a=1)
def test_set_syntax(): d = immutabledict(a=1) with pytest.raises(AttributeError): d['b'] = 2
def test_del_syntax(): d = immutabledict(a=1) with pytest.raises(AttributeError): del d['a']
def test_dict_popitem(): d = immutabledict(a=1) val, nd = d.popitem() assert nd == {} assert d == dict(a=1) assert val == ('a', 1)
def test_dict_pop(): d = immutabledict(a=1) val, nd = d.pop('a') assert nd == {} assert d == dict(a=1) assert val == 1
def test_dict_copy(): d = immutabledict(a=1) nd = d.copy() assert d is nd assert nd == dict(a=1)
def test_dict_repr(): d = immutabledict(a=1) nd = eval(repr(d)) assert type(nd) == type(d) assert nd == d