Пример #1
0
def test_tuple():
    data = ('a', 1)
    kvr = KeyValueRegistry(data)
    assert kvr['a'] == 1

    kvr = KeyValueRegistry(default=data)
    assert kvr['a'] == 1
    assert kvr[None] == 1
Пример #2
0
def test_fn():
    def fn():
        return 1

    kvr = KeyValueRegistry(fn)
    assert kvr[fn.__name__] == fn

    kvr = KeyValueRegistry(default=fn)
    assert kvr[fn.__name__] == fn
    assert kvr[None] == fn
Пример #3
0
def test_decorator():
    kvr = KeyValueRegistry()

    @kvr
    def fn():
        return 1

    assert kvr[fn.__name__] == fn
    assert kvr[fn.__name__]() == fn()
Пример #4
0
def test_default():
    kvr = KeyValueRegistry(default={'a': 1})
    assert kvr.default == 'a'
    assert kvr[None] == 1
Пример #5
0
def test_dict_like():
    """Test the basic to ensure similar to a dict"""
    data = {'a': 1, 'b': 2}
    kvr = KeyValueRegistry(data)
    assert data.keys() == kvr.keys()
    assert set(data.values()) == set(kvr.values())

    assert kvr.get('a') == 1
    assert kvr.get('c', 3) == 3

    keys, values = zip(*kvr.items())
    assert set(data.keys()) == set(keys)
    assert set(data.values()) == set(values)

    kvr_copy = kvr.copy()
    assert set(kvr_copy) == set(kvr)

    assert kvr.pop('a') == 1
    assert kvr.pop('a', 3) == 3
    assert kvr.popitem() == ('b', 2)
    with pytest.raises(KeyError):
        kvr.popitem()

    kvr = KeyValueRegistry()
    kvr.update(data)
    assert data.keys() == kvr.keys()
    assert set(data.values()) == set(kvr.values())

    kvr.clear()
    assert len(kvr) == 0
Пример #6
0
def test_dict_like():
    """Test the basic to ensure similar to a dict"""
    data = {'a': 1, 'b': 2}
    kvr = KeyValueRegistry(data)
    assert data.keys() == kvr.keys()
    assert set(data.values()) == set(kvr.values())

    assert kvr.get('a') == 1
    assert kvr.get('c', 3) == 3

    keys, values = zip(*kvr.items())
    assert set(data.keys()) == set(keys)
    assert set(data.values()) == set(values)

    kvr_copy = kvr.copy()
    assert set(kvr_copy) == set(kvr)

    assert kvr.pop('a') == 1
    assert kvr.pop('a', 3) == 3
    assert kvr.popitem() == ('b', 2)
    with pytest.raises(KeyError):
        kvr.popitem()

    kvr = KeyValueRegistry()
    kvr.update(data)
    assert data.keys() == kvr.keys()
    assert set(data.values()) == set(kvr.values())

    kvr.clear()
    assert len(kvr) == 0