Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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'}