mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-02-24 23:53:08 +00:00
Fixes basic tests for leveldbds
This commit is contained in:
parent
945c2c3856
commit
57487f81ca
@ -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"
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user