33
33
34
34
class SlicingDiceTester (object ):
35
35
per_test_insertion = False
36
+ insert_sql_data = False
36
37
37
38
"""Test orchestration class."""
38
39
@@ -67,7 +68,7 @@ def run_tests(self, query_type):
67
68
num_tests = len (test_data )
68
69
69
70
self .per_test_insertion = "insert" in test_data [0 ]
70
- if not self .per_test_insertion :
71
+ if not self .per_test_insertion and self . insert_sql_data :
71
72
insertion_data = self .load_test_data (query_type , suffix = "_insert" )
72
73
for insertion in insertion_data :
73
74
self .client .insert (insertion )
@@ -368,10 +369,15 @@ def are_equal(expected, result):
368
369
return False
369
370
del result [index ]
370
371
return True
371
-
372
+ elif isinstance (expected , float ):
373
+ return SlicingDiceTester .float_is_close (expected , result )
372
374
else :
373
375
return expected == result
374
376
377
+ @staticmethod
378
+ def float_is_close (a , b , rel_tol = 1e-09 , abs_tol = 0.0 ):
379
+ return abs (a - b ) <= max (rel_tol * max (abs (a ), abs (b )), abs_tol )
380
+
375
381
@staticmethod
376
382
def indexof (x , result ):
377
383
for i in range (len (result )):
@@ -396,7 +402,10 @@ def main():
396
402
# by enviroment variable
397
403
# http://panel.slicingdice.com/docs/#api-details-api-connection-api-keys-demo-key
398
404
api_key = os .environ .get (
399
- "SD_API_KEY" ,"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfX3NhbHQiOiJkZW1vMzU2N20iLCJwZXJtaXNzaW9uX2xldmVsIjozLCJwcm9qZWN0X2lkIjoyMzU2NywiY2xpZW50X2lkIjoxMH0.iv3Xf7GkhQynfus6QynGf285cWljD9KBucJxNtnJqjo" )
405
+ "SD_API_KEY" , "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfX3NhbHQiOiI"
406
+ "xNTIzMDY1ODQyNjU4IiwicGVybWlzc2lvbl9sZXZlbCI6MywicHJ"
407
+ "vamVjdF9pZCI6MzA1MDgsImNsaWVudF9pZCI6MjAzfQ.R3oKwcA9"
408
+ "XoQcW_QBxcvqUNJS44AqCKjoK2Hz5uBnxmU" )
400
409
401
410
# MODE_TEST give us if you want to use endpoint Test or Prod
402
411
sd_tester = SlicingDiceTester (
0 commit comments