mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 09:22:43 +03:00
987b55f981
We have a lot of `assert st_code == 200` scattered about. This is a problem because (a) it makes the code harder to parse and (b) the error message is lacking; I have seen a few flaky tests which were impossible to diagnose because I didn't know what the response _should_ be. This reduces the number of places in which we perform this assertion (moving most of them to `HGECtx.execute_query`), so that we can have a better chance of seeing a useful error message on test failure. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4957 GitOrigin-RevId: 3ff388bccf49f96569aa6b7db85266a0c5ee27ea
57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
# 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)
|