Ejemplo n.º 1
0
def test_delete(tmp_path, key, data, serializer):
    store = CacheStore(str(tmp_path))
    store.put(key=key, value=data, serializer=serializer)
    assert key in store.keys()
    store.delete(key=key, dry_run=True)
    del store[key]
    assert key not in store.keys()
Ejemplo n.º 2
0
def test_put_and_get(tmp_path, key, data, serializer):
    store = CacheStore(str(tmp_path))
    store.put(key=key, value=data, serializer=serializer)
    assert key in store.keys()
    assert isinstance(store.get_artifact(key), Artifact)
    results = store[key]
    if isinstance(data, (xr.Dataset, xr.DataArray)):
        xr.testing.assert_equal(results, data)
    elif isinstance(data, pd.DataFrame):
        pd.testing.assert_frame_equal(results, data)
    else:
        assert results == data
Ejemplo n.º 3
0
def test_on_duplicate_key(tmp_path, on_duplicate_key):
    store = CacheStore(str(tmp_path), on_duplicate_key=on_duplicate_key)
    key, data, new_data = 'foo', 'my_data', 'hello'
    store.put(key=key, value=data)

    if on_duplicate_key == 'raise_error':
        with pytest.raises(ValueError):
            store.put(key=key, value=new_data)
    else:
        store.put(key=key, value=new_data)

    if on_duplicate_key == 'overwrite':
        assert store.get(key) == new_data
    else:
        assert store.get(key) == data