Skip to content

Commit 00fed5b

Browse files
committed
fix test_threaded and minor tweaks
1 parent 704be16 commit 00fed5b

File tree

11 files changed

+40
-52
lines changed

11 files changed

+40
-52
lines changed

private/connection.nim

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,13 @@ proc addOption*(r: RethinkClient, k: string, v: MutableDatum) =
100100
## Set a global option
101101
r.options.add((k, v))
102102

103-
proc use*(r: RethinkClient, s: string) =
103+
proc use*(r: RethinkClient, s: string): RethinkClient {.discardable.} =
104104
## Change the default database on this connection.
105-
var term: RqlQuery
106-
new(term)
105+
var term = new(RqlQuery)
107106
term.tt = DB
108107
term.args = @[newDatum(s)]
109108
r.addOption("db", term.toDatum)
109+
result = r
110110

111111
proc newRethinkClient*(address = "127.0.0.1", port = Port(28015), db: string = ""): RethinkClient =
112112
## Init new client instance
@@ -123,6 +123,11 @@ proc newRethinkClient*(address = "127.0.0.1", port = Port(28015), db: string = "
123123

124124
if db != "":
125125
result.use(db)
126+
127+
template R*(address = "127.0.0.1", port = Port(28015), db: string = ""): RethinkClient =
128+
## Alias for `newRethinkClient`
129+
newRethinkClient(address, port, db)
130+
126131
when not compileOption("threads"):
127132
proc handshake(r: RethinkClient) {.async.} =
128133
when defined(debug):
@@ -275,7 +280,7 @@ when not compileOption("threads"):
275280

276281
result = newResponse(buf, token)
277282

278-
proc connect*(r: RethinkClient, username = "admin", password: string = ""): Future[void] {.async.} =
283+
proc connect*(r: RethinkClient, username = "admin", password: string = ""): Future[RethinkClient] {.discardable, async.} =
279284
## Create a new connection to the database server
280285
if not r.isConnected:
281286
if r.username != username:
@@ -287,6 +292,7 @@ when not compileOption("threads"):
287292
await r.sock.connect(r.address, r.port)
288293
r.sockConnected = true
289294
await r.handshake()
295+
result = r
290296

291297
proc reconnect*(r: RethinkClient) {.async.} =
292298
## Close and reopen a connection
@@ -348,7 +354,7 @@ else:
348354
echo "<<< ", buf
349355
newResponse(buf, token)
350356

351-
proc connect*(r: RethinkClient, username = "admin", password: string = "") =
357+
proc connect*(r: RethinkClient, username = "admin", password: string = ""): RethinkClient {.discardable.} =
352358
## Create a new connection to the database server
353359
if not r.isConnected:
354360
if r.username != username:
@@ -360,6 +366,7 @@ else:
360366
r.sock.connect(r.address, r.port)
361367
r.sockConnected = true
362368
r.handshake()
369+
result = r
363370

364371
proc reconnect*(r: RethinkClient) =
365372
## Close and reopen a connection

private/ql2.nim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const
55

66
type
77
ResponseType* = enum
8-
SUCCESS_ATOM = 1, ## Query returned a single RQL datatype.
8+
SUCCESS_ATOM = 1, ## Query returned a single RQL datatype.
99
SUCCESS_SEQUENCE = 2, ## Query returned a sequence of RQL datatypes.
1010
SUCCESS_PARTIAL = 3, ## Query returned a partial sequence of RQL
1111
## datatypes. If you send a [CONTINUE] query with

private/rql.nim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ proc row*[T: RethinkClient|RqlQuery](r: T): RqlQuery =
1717
#raise newException(RqlDriverError, "'r.row' is not callable, use 'r.row[...]' instead")
1818

1919

20-
proc repl*(r: RethinkClient) =
20+
proc repl*(r: RethinkClient): RethinkClient {.discardable.} =
2121
defaultClient = r
22+
result = r
2223

2324
when not compileOption("threads"):
2425
proc run*(r: RqlQuery, c: RethinkClient = nil, readMode = "single",

private/utils.nim

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,18 @@ template NEW_QUERY*(t: TermType): void =
66
result = newQuery(t)
77

88
template NEW_QUERY*(t: TermType, a1: typed): void =
9-
result = newQuery(t)
10-
result.addArg(a1)
9+
result = newQuery(t).addArg(a1)
1110

1211
template NEW_QUERY*(t: TermType, a1, a2: typed): void =
13-
result = newQuery(t)
14-
result.addArg(a1)
15-
result.addArg(a2)
12+
result = newQuery(t).addArg(a1).addArg(a2)
1613

1714
template NEW_QUERY*(t: TermType, a1, a2, a3: typed): void =
18-
result = newQuery(t)
19-
result.addArg(a1)
20-
result.addArg(a2)
21-
result.addArg(a3)
15+
result = newQuery(t).addArg(a1).addArg(a2).addArg(a3)
2216

2317
proc newQuery*(tt: TermType): RqlQuery {.inline.} =
24-
new result
18+
result = new(RqlQuery)
2519
result.tt = tt
2620

27-
2821
proc newDatum*[T](t: T): RqlQuery =
2922
when t is RqlQuery:
3023
result = t
@@ -33,14 +26,12 @@ proc newDatum*[T](t: T): RqlQuery =
3326
else:
3427
result = RqlQuery(tt: DATUM, value: t.toDatum)
3528

36-
proc `@`*[T](t: T): RqlQUery =
37-
newDatum(t)
38-
39-
proc addArg*[T](r: RqlQuery, t: T) =
29+
proc addArg*[T](r: RqlQuery, t: T): RqlQuery {.discardable.} =
4030
when t is RqlQuery:
4131
r.args.add(t)
4232
else:
4333
r.args.add(newDatum(t))
34+
result = r
4435

4536
proc setOption*(r: RqlQuery, k: string, v: RqlQuery) {.noSideEffect, inline.} =
4637
r.optargs.add((k, v))

rethinkdb.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ license = "MIT"
55

66
skipDirs = @["tests", "bench"]
77

8-
requires "nim >= 1.0.4", "struct >= 0.1.2", "scram >= 0.1.1"
8+
requires "nim >= 1.0.4", "struct >= 0.2.1", "scram >= 0.1.1"

tests/test_db.nim

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ import ../rethinkdb
33

44
randomize()
55

6-
let db = "test_db_" & $random(9999)
6+
let db = "test_db_" & $rand(9999)
77
var ret: JsonNode
8-
let r = newRethinkClient()
9-
r.connect()
10-
r.repl()
8+
let r = R.connect().repl()
119

1210

1311
suite "database manipulation tests":

tests/test_geo.nim

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import unittest, json, random
22
import ../rethinkdb
33

4-
let r = newRethinkClient()
5-
r.connect()
6-
r.repl()
4+
let r = R.connect().repl()
75
randomize()
8-
let db = "test_geo_" & $random(9999)
6+
let db = "test_geo_" & $rand(9999)
97
let table = "nodes"
108

119
discard r.dbCreate(db).run()

tests/test_lambdas.nim

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import unittest, json, random
22
import ../rethinkdb
33

4-
let r = newRethinkClient()
5-
r.connect()
6-
r.repl()
4+
let r = R.connect().repl()
75

86
randomize()
9-
let db = "test_lambda_" & $random(9999)
7+
let db = "test_lambda_" & $rand(9999)
108
let table = "SuperHeroes"
119

1210
discard r.dbCreate(db).run()

tests/test_math_logic.nim

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import unittest, json
22
import ../rethinkdb
33

4-
let r = newRethinkClient()
5-
r.connect()
6-
r.repl()
4+
let r = R.connect().repl()
75

86
suite "math and logic tests":
97
test "add":

tests/test_ordering.nim

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import unittest, json, random
22
import ../rethinkdb
33

4-
let r = newRethinkClient()
5-
r.connect()
6-
r.repl()
4+
let r = R.connect().repl()
75

86
randomize()
9-
let db = "test_lambda_" & $random(9999)
7+
let db = "test_lambda_" & $rand(9999)
108
let table = "SuperHeroes"
119

1210
r.dbCreate(db).run()

0 commit comments

Comments
 (0)