File: C:/Users/fred/anaconda3/Lib/site-packages/zict/tests/test_lmdb.py
import os
import pathlib
import pytest
from zict import LMDB
from zict.tests import utils_test
pytest.importorskip("lmdb")
@pytest.mark.parametrize("dirtype", [str, pathlib.Path, lambda x: x])
def test_dirtypes(tmp_path, check_fd_leaks, dirtype):
z = LMDB(tmp_path)
z["x"] = b"123"
assert z["x"] == b"123"
del z["x"]
def test_mapping(tmp_path, check_fd_leaks):
"""
Test mapping interface for LMDB().
"""
z = LMDB(tmp_path)
utils_test.check_mapping(z)
def test_bad_types(tmp_path, check_fd_leaks):
z = LMDB(tmp_path)
utils_test.check_bad_key_types(z)
utils_test.check_bad_value_types(z)
def test_reuse(tmp_path, check_fd_leaks):
"""
Test persistence of a LMDB() mapping.
"""
with LMDB(tmp_path) as z:
assert len(z) == 0
z["abc"] = b"123"
with LMDB(tmp_path) as z:
assert len(z) == 1
assert z["abc"] == b"123"
def test_creates_dir(tmp_path, check_fd_leaks):
with LMDB(tmp_path, check_fd_leaks):
assert os.path.isdir(tmp_path)
def test_file_descriptors_dont_leak(tmp_path, check_fd_leaks):
z = LMDB(tmp_path)
del z
z = LMDB(tmp_path)
z.close()
with LMDB(tmp_path) as z:
pass
def test_map_size(tmp_path, check_fd_leaks):
import lmdb
z = LMDB(tmp_path, map_size=2**20)
z["x"] = b"x" * 2**19
with pytest.raises(lmdb.MapFullError):
z["y"] = b"x" * 2**20