graphql-engine/server/tests-py/utils.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

57 lines
1.4 KiB
Python
Raw Normal View History

# Various testing utility functions
import time
# Loop a function 'tries' times, until all assertions pass. With a 0.3 second
# pause after each. This re-raises AssertionError in case we run out of tries
def until_asserts_pass(tries, func):
for x in range(0, tries):
print(x)
if x == tries-1:
# last time; raise any assertions in caller:
func()
else:
try:
func()
break
except AssertionError:
time.sleep(0.3)
pass
def insert(hge_ctx, table, row, returning=[], headers = {}):
return insert_many(hge_ctx, table, [row], returning, headers)
def insert_many(hge_ctx, table, rows, returning=[], headers = {}):
q = {
"type": "insert",
"args": {
"table": table,
"objects": rows,
"returning": returning
}
}
return hge_ctx.v1q(q, headers = headers)
def update(hge_ctx, table, where_exp, set_exp, headers = {}):
q = {
"type": "update",
"args": {
"table": table,
"where": where_exp,
"$set": set_exp
}
}
return hge_ctx.v1q(q, headers = headers)
def delete(hge_ctx, table, where_exp, headers = {}):
q = {
"type": "delete",
"args": {
"table": table,
"where": where_exp
}
}
return hge_ctx.v1q(q, headers = headers)