mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-03 14:13:09 +00:00
don't use toSeq
This commit is contained in:
parent
6a3882ffa5
commit
88eb96edb3
@ -9,7 +9,6 @@ import pkg/stew/byteutils
|
||||
|
||||
import pkg/datastore
|
||||
|
||||
|
||||
template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
var
|
||||
key1: Key
|
||||
@ -37,13 +36,20 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
|
||||
let
|
||||
iter = (await ds.query(q)).tryGet
|
||||
|
||||
var res: seq[QueryResponse]
|
||||
while not iter.finished:
|
||||
let val = await iter.next()
|
||||
let qr = val.tryGet()
|
||||
if qr.key.isSome:
|
||||
res.add qr
|
||||
res = block:
|
||||
var
|
||||
res: seq[QueryResponse]
|
||||
cnt = 0
|
||||
|
||||
while not iter.finished:
|
||||
let (key, val) = (await iter.next()).tryGet
|
||||
if key.isNone:
|
||||
break
|
||||
|
||||
res.add((key, val))
|
||||
cnt.inc
|
||||
|
||||
res
|
||||
|
||||
check:
|
||||
res.len == 3
|
||||
@ -67,8 +73,17 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
(await ds.put(key3, val3)).tryGet
|
||||
|
||||
let
|
||||
all = waitForAllQueryResults(await ds.query(q))
|
||||
res = tryGet(await all)
|
||||
iter = (await ds.query(q)).tryGet
|
||||
res = block:
|
||||
var res: seq[QueryResponse]
|
||||
while not iter.finished:
|
||||
let (key, val) = (await iter.next()).tryGet
|
||||
if key.isNone:
|
||||
break
|
||||
|
||||
res.add((key, val))
|
||||
|
||||
res
|
||||
|
||||
check:
|
||||
res.len == 3
|
||||
@ -81,6 +96,7 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
res[2].key.get == key3
|
||||
res[2].data.len == 0
|
||||
|
||||
(await iter.dispose()).tryGet
|
||||
|
||||
test "Key should not query parent":
|
||||
let
|
||||
@ -91,7 +107,17 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
(await ds.put(key3, val3)).tryGet
|
||||
|
||||
let
|
||||
res = tryGet(await ds.query(q).waitForAllQueryResults())
|
||||
iter = (await ds.query(q)).tryGet
|
||||
res = block:
|
||||
var res: seq[QueryResponse]
|
||||
while not iter.finished:
|
||||
let (key, val) = (await iter.next()).tryGet
|
||||
if key.isNone:
|
||||
break
|
||||
|
||||
res.add((key, val))
|
||||
|
||||
res
|
||||
|
||||
check:
|
||||
res.len == 2
|
||||
@ -101,6 +127,8 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
res[1].key.get == key3
|
||||
res[1].data == val3
|
||||
|
||||
(await iter.dispose()).tryGet
|
||||
|
||||
test "Key should all list all keys at the same level":
|
||||
let
|
||||
queryKey = Key.init("/a").tryGet
|
||||
@ -114,7 +142,16 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
iter = (await ds.query(q)).tryGet
|
||||
|
||||
var
|
||||
res = tryGet(await ds.query(q).waitForAllQueryResults())
|
||||
res = block:
|
||||
var res: seq[QueryResponse]
|
||||
while not iter.finished:
|
||||
let (key, val) = (await iter.next()).tryGet
|
||||
if key.isNone:
|
||||
break
|
||||
|
||||
res.add((key, val))
|
||||
|
||||
res
|
||||
|
||||
res.sort do (a, b: QueryResponse) -> int:
|
||||
cmp(a.key.get.id, b.key.get.id)
|
||||
@ -146,11 +183,16 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
(await ds.put(key, val)).tryGet
|
||||
|
||||
let
|
||||
res = tryGet(await ds.query(q).waitForAllQueryResults())
|
||||
iter = (await ds.query(q)).tryGet
|
||||
res = (await allFinished(toSeq(iter)))
|
||||
.mapIt( it.read.tryGet )
|
||||
.filterIt( it.key.isSome )
|
||||
|
||||
check:
|
||||
res.len == 10
|
||||
|
||||
(await iter.dispose()).tryGet
|
||||
|
||||
test "Should not apply offset":
|
||||
let
|
||||
key = Key.init("/a").tryGet
|
||||
@ -164,11 +206,23 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
(await ds.put(key, val)).tryGet
|
||||
|
||||
let
|
||||
res = tryGet(await ds.query(q).waitForAllQueryResults())
|
||||
iter = (await ds.query(q)).tryGet
|
||||
res = block:
|
||||
var res: seq[QueryResponse]
|
||||
while not iter.finished:
|
||||
let (key, val) = (await iter.next()).tryGet
|
||||
if key.isNone:
|
||||
break
|
||||
|
||||
res.add((key, val))
|
||||
|
||||
res
|
||||
|
||||
check:
|
||||
res.len == 10
|
||||
|
||||
(await iter.dispose()).tryGet
|
||||
|
||||
test "Should not apply offset and limit":
|
||||
let
|
||||
key = Key.init("/a").tryGet
|
||||
@ -182,7 +236,17 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
(await ds.put(key, val)).tryGet
|
||||
|
||||
let
|
||||
res = tryGet(await ds.query(q).waitForAllQueryResults())
|
||||
iter = (await ds.query(q)).tryGet
|
||||
res = block:
|
||||
var res: seq[QueryResponse]
|
||||
while not iter.finished:
|
||||
let (key, val) = (await iter.next()).tryGet
|
||||
if key.isNone:
|
||||
break
|
||||
|
||||
res.add((key, val))
|
||||
|
||||
res
|
||||
|
||||
check:
|
||||
res.len == 5
|
||||
@ -196,6 +260,8 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
res[i].key.get == key
|
||||
res[i].data == val
|
||||
|
||||
(await iter.dispose()).tryGet
|
||||
|
||||
test "Should apply sort order - descending":
|
||||
let
|
||||
key = Key.init("/a").tryGet
|
||||
@ -216,7 +282,17 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
|
||||
kvs = kvs.reversed
|
||||
let
|
||||
res = tryGet(await ds.query(q).waitForAllQueryResults())
|
||||
iter = (await ds.query(q)).tryGet
|
||||
res = block:
|
||||
var res: seq[QueryResponse]
|
||||
while not iter.finished:
|
||||
let (key, val) = (await iter.next()).tryGet
|
||||
if key.isNone:
|
||||
break
|
||||
|
||||
res.add((key, val))
|
||||
|
||||
res
|
||||
|
||||
check:
|
||||
res.len == 100
|
||||
@ -225,3 +301,5 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
|
||||
check:
|
||||
res[i].key.get == kvs[i].key.get
|
||||
res[i].data == kvs[i].data
|
||||
|
||||
(await iter.dispose()).tryGet
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user