def test_get_set_del(self): st = SharedTable() try: st['key'] assert False, 'did not fail on nonexistent key' except KeyError: pass st['key'] = 1 assert st['key'] == 1 st['key'] += 1 assert st['key'] == 2 try: st['key'] = 2.1 assert False, 'cannot change type of value for set keys' except TypeError: pass del st['key'] assert 'key' not in st, 'key should have been removed from table' st['key'] = 'hello' assert st['key'] == 'hello' st['key'] += ' world' assert st['key'] == 'hello world' st['ctr'] = 0 keyset1 = set(iter(st)) keyset2 = set(st.keys()) assert keyset1 == keyset2, 'iterating should return keys'
def test_iter_keys(self): st = SharedTable({'key': 0, 'ctr': 0.0, 'val': False, 'other': 1}) assert len(st) == 4 del st['key'] assert len(st) == 3, 'length should decrease after deleting key' keyset1 = set(iter(st)) keyset2 = set(st.keys()) assert keyset1 == keyset2, 'iterating should return keys' assert len(keyset1) == 3, ''