def test_pop_with_keycomments(atomic_weights_keycomments, atomic_weights_keycomments_after_removal): """ Test `MetaDict.pop(...)` removes corresponding keycomments. """ len_before = len(atomic_weights_keycomments) md = MetaDict(atomic_weights_keycomments) assert md.pop('hydrogen') == 1 assert md.pop('mercury') == 80 assert len(md) == len_before - 2 check_contents_and_insertion_order( md, atomic_weights_keycomments_after_removal)
def test_upcasing(): meta = MetaDict({'wibble': 1, 'WOBBLE': 2}) # __getitem__ assert meta['wibble'] == meta['WIBBLE'] # get assert meta.get('wibble') == meta.get('WIBBLE') # has_key assert ('wibble' in meta) == ('WIBBLE' in meta) # Copy meta2 = meta.copy() assert meta2 == meta # pop assert meta.pop('wibble') == meta2.pop('WIBBLE') # update meta.update({'spam': 'eggs'}) meta2.update({'SPAM': 'eggs'}) assert meta == meta2 # setdefault meta.setdefault('dave', 3) meta2.setdefault('DAVE', 3) assert meta.get('DAVE') == meta2.get('dave') # __setitem__ meta['wibble'] = 10 assert meta['wibble'] == 10 meta['WIBBLE'] = 20 assert meta['wibble'] == 20 # __contains__ assert 'wibble' in meta assert 'WIBBLE' in meta
def test_upcasing(): meta = MetaDict({'wibble':1, 'WOBBLE':2}) #__getitem__ assert meta['wibble'] == meta['WIBBLE'] #get assert meta.get('wibble') == meta.get('WIBBLE') #has_key assert ('wibble' in meta) == ('WIBBLE' in meta) #Copy meta2 = meta.copy() assert meta2 == meta #pop assert meta.pop('wibble') == meta2.pop('WIBBLE') #update meta.update({'spam':'eggs'}) meta2.update({'SPAM':'eggs'}) assert meta == meta2 #setdefault meta.setdefault('dave',3) meta2.setdefault('DAVE',3) assert meta.get('DAVE') == meta2.get('dave') #__setitem__ meta['wibble'] = 10 assert meta['wibble'] == 10 meta['WIBBLE'] = 20 assert meta['wibble'] == 20 #__contains__ assert 'wibble' in meta assert 'WIBBLE' in meta
def test_original_copy(): md = MetaDict({'foo': 'bar'}) assert md.original_meta == md # Add a key, make sure original contents doesn't change md['a'] = 'b' assert md.original_meta != md assert list(md.keys()) == ['foo', 'a'] assert list(md.original_meta.keys()) == ['foo'] assert md.added_items == {'a': 'b'} # Check that creating a new MetaDict preserves the original copy md = MetaDict(md) assert list(md.keys()) == ['foo', 'a'] assert list(md.original_meta.keys()) == ['foo'] # Check that creating a copy preserves the original copy md = copy.copy(md) assert list(md.keys()) == ['foo', 'a'] assert list(md.original_meta.keys()) == ['foo'] # Check that creating a deepcopy preserves the original copy md = copy.deepcopy(md) assert list(md.keys()) == ['foo', 'a'] assert list(md.original_meta.keys()) == ['foo'] # Check that creating using .copy() preserves the original copy md = md.copy() assert list(md.keys()) == ['foo', 'a'] assert list(md.original_meta.keys()) == ['foo'] # Check modification of items md['foo'] = 'bar1' assert md.modified_items == {'foo': ModifiedItem('bar', 'bar1')} # Check removal of items md.pop('foo') assert md.removed_items == {'foo': 'bar'}