Fixes basic tests for leveldbds

This commit is contained in:
ThatBen 2024-05-13 15:16:21 +02:00
parent 945c2c3856
commit 57487f81ca
3 changed files with 11 additions and 17 deletions

View File

@ -11,7 +11,7 @@ requires "nim >= 1.2.0",
"chronos#c41599a", # FIXME change to Chronos >= 4.0.0 once it's out
"questionable >= 0.10.3 & < 0.11.0",
"sqlite3_abi",
"https://github.com/codex-storage/nim-leveldb#f825f0d",
"leveldbstatic >= 0.1.0",
"stew",
"unittest2",
"upraises >= 0.1.0 & < 0.2.0"

View File

@ -3,8 +3,7 @@ import std/tables
import std/os
import std/strformat
import pkg/leveldb
import pkg/chronicles
import pkg/leveldbstatic
import pkg/chronos
import pkg/questionable
import pkg/questionable/results
@ -16,9 +15,6 @@ import ../datastore/defaultimpl
push: {.upraises: [].}
logScope:
topics = "LevelDB"
type
LevelDbDatastore* = ref object of Datastore
db: LevelDb
@ -47,14 +43,13 @@ method delete*(self: LevelDbDatastore, key: Key): Future[?!void] {.async, locks:
except LevelDbException as e:
return failure("LevelDbDatastore.delete exception: " & e.msg)
method delete*(self: Datastore, keys: seq[Key]): Future[?!void] {.async, locks: "unknown".} =
method delete*(self: LevelDbDatastore, keys: seq[Key]): Future[?!void] {.async, locks: "unknown".} =
for key in keys:
if err =? (await self.delete(key)).errorOption:
return failure(err.msg)
return success()
method get*(self: LevelDbDatastore, key: Key): Future[?!seq[byte]] {.async, locks: "unknown".} =
trace "Get", key
try:
let str = self.db.get($key)
if not str.isSome:
@ -65,7 +60,6 @@ method get*(self: LevelDbDatastore, key: Key): Future[?!seq[byte]] {.async, lock
return failure("LevelDbDatastore.get exception: " & $e.msg)
method put*(self: LevelDbDatastore, key: Key, data: seq[byte]): Future[?!void] {.async, locks: "unknown".} =
trace "Put", key
try:
let str = toString(data)
self.db.put($key, str)
@ -166,9 +160,7 @@ method modify*(
proc new*(
T: type LevelDbDatastore, dbName: string): ?!T =
try:
trace "Opening LevelDB", dbName
let db = leveldb.open(dbName)
let db = leveldbstatic.open(dbName)
success T(
db: db,

View File

@ -8,16 +8,18 @@ import pkg/chronos
import pkg/stew/results
import pkg/stew/byteutils
import pkg/datastore/sql/sqliteds
import pkg/datastore
import pkg/datastore/key
import pkg/datastore/leveldb/leveldbds
import ../dscommontests
import ../modifycommontests
import ../querycommontests
suite "Test Basic LevelDBDatastore":
suite "Test Basic LevelDbDatastore":
let
tempDir = getTempDir() / "testleveldbds"
ds = LevelDBDatastore.new(tempDir).tryGet()
ds = LevelDbDatastore.new(tempDir).tryGet()
key = Key.init("a:b/c/d:e").tryGet()
bytes = "some bytes".toBytes
otherBytes = "some other bytes".toBytes
@ -34,7 +36,7 @@ suite "Test Basic LevelDBDatastore":
suite "Test LevelDB Query":
let tempDir = getTempDir() / "testleveldbds"
var ds: LevelDBDatastore
var ds: LevelDbDatastore
setupAll:
createdir(tempDir)
@ -43,7 +45,7 @@ suite "Test LevelDB Query":
removeDir(tempDir)
setup:
ds = LevelDBDatastore.new(tempDir).tryGet()
ds = LevelDbDatastore.new(tempDir).tryGet()
teardown:
(await ds.close()).tryGet