Esempio n. 1
0
def test_flatten():
    """Flatenning the dictionary."""
    flex = FlexDict(DATA)
    assert sorted(flex.flatten()) == [(['a', 'b', 'c'], 1), (['a', 'b',
                                                              'd'], 2),
                                      (['e', 'f'], 3), (['e', 'g'], 4),
                                      (['h'], 5)]
Esempio n. 2
0
def test_equals():
    """Equality comparisons."""
    flex = FlexDict()
    assert (flex == flex) is True
    assert (flex is flex) is True
    assert (flex == FlexDict()) is True
    assert (flex is FlexDict()) is False
Esempio n. 3
0
def test_pop():
    """Popping items from the dictionary."""
    flex = FlexDict(DATA)
    items = list(flex.items())[::-1]
    for key, val in items:
        assert flex.pop() == {key: val}
    assert flex.pop() is None
Esempio n. 4
0
def test_lock_inplace_false():
    """Creating a locked and unlocked copies."""
    flex = FlexDict(DATA)
    flex_locked = flex.lock(inplace=False)
    flex_unlocked = flex_locked.unlock(inplace=False)
    assert flex.locked is False
    assert flex_locked.locked is True
    assert flex_unlocked.locked is False
Esempio n. 5
0
def test_lock_error():
    """KeyError after locking."""
    flex = FlexDict(DATA)
    flex.lock()
    with raises(KeyError):
        flex['z', 'k']  # pylint: disable=W0104
    with raises(KeyError):
        flex['z', 'k'] = 1
    assert flex == DATA
Esempio n. 6
0
def test_hash_equals():
    """Hash equality comparisons. hash(FlexDict()) == hash(FlexDict())"""
    f = FlexDict()
    g = FlexDict()
    assert (hash(f) == hash(g)) is True
    assert (hash(f) == hash(f)) is True
    f["foo", "bar"] = 1
    g["bar", "foo"] = 1
    assert (hash(f) == hash(g)) is False
Esempio n. 7
0
def test_values_unique():
    """Getting unique values."""
    flex = FlexDict(DATA)
    assert all([
        item in [{
            'b': {
                'c': 1,
                'd': 2
            }
        }, {
            'f': 3,
            'g': 4
        }, 5] for item in flex.values(unique=True)
    ]) is True
Esempio n. 8
0
def test_unlock(keys):
    """Recursive (un)locking mechanism."""
    flex = FlexDict(DATA)
    flex.lock()
    flex.unlock()
    assert flex.locked is False
    assert flex[keys].locked is False
Esempio n. 9
0
def test_init_value_error():
    """Invalid initialization."""
    data = {1, 2}
    with raises(ValueError):
        FlexDict(data)
Esempio n. 10
0
 def test_inside(s_set, flag):
     """Superset detection."""
     assert FlexDict(s_set).inside(DATA) is flag
Esempio n. 11
0
def test_keys_unique():
    """Getting unique keys."""
    flex = FlexDict(DATA)
    assert sorted(flex.keys(unique=True)) == sorted(set(DATA.keys()))
Esempio n. 12
0
def test_init_lock(keys):
    """Recursive locking on init."""
    flex = FlexDict(DATA)
    assert flex.locked is False
    assert flex[keys].locked is False
Esempio n. 13
0
 def test_contains(s_set, flag):
     """Subset detection."""
     flex = FlexDict(DATA)
     assert flex.contains(s_set) is flag
Esempio n. 14
0
 def test_get_function(get_keys, get_val):
     """Getting value."""
     flex = FlexDict(DATA)
     assert flex.get(get_keys) == get_val
Esempio n. 15
0
 def test_set_func(set_keys, set_val):
     """Setting values."""
     flex = FlexDict()
     flex.set(set_keys, set_val)
     assert flex[set_keys] == set_val
Esempio n. 16
0
def test_values():
    """Getting values."""
    flex = FlexDict(DATA)
    assert list(flex.values()) == list(DATA.values())
Esempio n. 17
0
 def test_get(get_keys, get_val):
     """Getting values."""
     flex = FlexDict(DATA)
     assert flex[get_keys] == get_val
Esempio n. 18
0
def test_values_nested():
    """Getting nested values."""
    flex = FlexDict(DATA)
    assert sorted(flex.values(nested=True)) == [1, 2, 3, 4, 5]
Esempio n. 19
0
def test_lock(keys):
    """Recursive locking mechanism."""
    flex = FlexDict(DATA)
    flex.lock()
    assert flex.locked is True
    assert flex[keys].locked is True
Esempio n. 20
0
def test_length_nested_unique():
    """Recursively getting the total number of unique keys."""
    flex = FlexDict(DATA)
    assert flex.length(nested=True, unique=True) == 8
Esempio n. 21
0
def test_length_unique():
    """Getting the number of keys."""
    flex = FlexDict(DATA)
    assert flex.length(unique=True) == 3
Esempio n. 22
0
def test_length():
    """Getting the dictionary length."""
    flex = FlexDict(DATA)
    assert flex.length() == 3
Esempio n. 23
0
def test_keys_nested():
    """Getting nested keys."""
    flex = FlexDict(DATA)
    assert sorted(
        flex.keys(nested=True)) == ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
Esempio n. 24
0
def test_values_nested_unique():
    """Getting nested unique values."""
    flex = FlexDict(DATA)
    assert flex.values(nested=True, unique=True) == {1, 2, 3, 4, 5}
Esempio n. 25
0
def test_size():
    """Recursively count the total number of keys and values."""
    flex = FlexDict(DATA)
    assert flex.size() == 13
Esempio n. 26
0
def test_keys_nested_unique():
    """Getting nested unique keys."""
    flex = FlexDict(DATA)
    assert flex.keys(nested=True,
                     unique=True) == {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}
Esempio n. 27
0
def test_init():
    """Initialization with dictionary."""
    assert FlexDict() == dict()
    assert FlexDict(DATA) == DATA
Esempio n. 28
0
def test_size_unique():
    """Recursively count the total number of unique keys and values."""
    flex = FlexDict(DATA)
    assert flex.size(unique=True) == 13
Esempio n. 29
0
def test_unlock_set():
    """Set values after unlocking."""
    flex = FlexDict(DATA)
    flex.lock()
    flex.unlock()
    flex['z', 'k'] = 1
Esempio n. 30
0
def test_keys():
    """Getting keys."""
    flex = FlexDict(DATA)
    assert flex.keys() == DATA.keys()