Пример #1
0
class EntityFileStore(EntityStore):
    def __init__(self, name: str, dataDir: str):
        self._db = TextFileStore(dbName=name, dbDir=dataDir)

    def add(self, name: str, entity):
        self._db.put(name, entity)

    def get(self, name: str):
        return self._db.get(name)
Пример #2
0
def test_equality_to_text_file_store(tmpdir):
    """
    This test verifies that TextFileStore and ChunkedFileStore behave equally
    """
    isLineNoKey = True
    storeContentHash = False
    ensureDurability = True
    dbDir = str(tmpdir)

    defaultFile = os.path.join(dbDir, "template")

    lines = [
        "FirstLine\n", "OneMoreLine\n", "AnotherLine\n", "LastDefaultLine\n"
    ]

    with open(defaultFile, "w") as f:
        f.writelines(lines)

    chunkSize = len(lines)

    chunkedStore = ChunkedFileStore(dbDir=dbDir,
                                    dbName="chunked_data",
                                    isLineNoKey=isLineNoKey,
                                    storeContentHash=storeContentHash,
                                    chunkSize=chunkSize,
                                    ensureDurability=ensureDurability,
                                    chunkStoreConstructor=TextFileStore,
                                    defaultFile=defaultFile)

    textStore = TextFileStore(dbDir=dbDir,
                              dbName="text_data",
                              isLineNoKey=isLineNoKey,
                              storeContentHash=storeContentHash,
                              ensureDurability=ensureDurability,
                              defaultFile=defaultFile)

    for i in range(1, 5 * chunkSize):
        value = str(i)
        chunkedStore.put(value)
        textStore.put(value)
        assert textStore.get(value) == chunkedStore.get(value)

    assert list(chunkedStore.iterator()) == \
           list(textStore.iterator())