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)
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())