nim-datastore/tests/datastore/leveldb/testleveldbds.nim
Ben Bierens 0ee88a2a9b
Adds LevelDB Datastore (#63)
* set up leveldb-datastore

* Adds test for leveldb

* pulls in nim-leveldb by url and hash

* Fixes basic tests for leveldbds

* Implements query iterator

* Fixes include path for defaultImpl

* Review comments by Tomasz
2024-05-14 11:05:58 +02:00

64 lines
1.3 KiB
Nim

import std/options
import std/os
import std/sequtils
from std/algorithm import sort, reversed
import pkg/asynctest
import pkg/chronos
import pkg/stew/results
import pkg/stew/byteutils
import pkg/datastore
import pkg/datastore/key
import pkg/datastore/leveldb/leveldbds
import ../dscommontests
import ../modifycommontests
import ../querycommontests
import ../typeddscommontests
suite "Test Basic LevelDbDatastore":
let
tempDir = getTempDir() / "testleveldbds"
ds = LevelDbDatastore.new(tempDir).tryGet()
key = Key.init("a:b/c/d:e").tryGet()
bytes = "some bytes".toBytes
otherBytes = "some other bytes".toBytes
setupAll:
createdir(tempDir)
teardownAll:
(await ds.close()).tryGet()
removeDir(tempDir)
basicStoreTests(ds, key, bytes, otherBytes)
modifyTests(ds, key)
typedDsTests(ds, key)
suite "Test LevelDB Query":
let tempDir = getTempDir() / "testleveldbds"
var ds: LevelDbDatastore
setup:
createdir(tempDir)
ds = LevelDbDatastore.new(tempDir).tryGet()
teardown:
(await ds.close()).tryGet
removeDir(tempDir)
queryTests(ds,
testLimitsAndOffsets = true,
testSortOrder = false
)
suite "Test LevelDB Typed Query":
let
ds = SQLiteDatastore.new(Memory).tryGet()
teardownAll:
(await ds.close()).tryGet
typedDsQueryTests(ds)