Changeset: 75bd05c248ff for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=75bd05c248ff
Modified Files:
        testing/sqltest.py
Branch: default
Log Message:

better error message on assertDataMatch


diffs (39 lines):

diff --git a/testing/sqltest.py b/testing/sqltest.py
--- a/testing/sqltest.py
+++ b/testing/sqltest.py
@@ -33,6 +33,17 @@ def sequence_match(left=[], right=[], in
             return False
     return True
 
+def get_index_mismatch(left=[], right=[]):
+    ll = len(left)
+    rl = len(right)
+    index = None
+    for i in range(min(ll, rl)):
+        if not equals(left[i], right[i]):
+            index = i
+            break
+    return index
+
+
 def piped_representation(data=[]):
     def mapfn(next):
         if type(next) is tuple:
@@ -293,8 +304,15 @@ class TestCaseResult(object):
                     if first == v:
                         index = i
                         break
-        if not sequence_match(data, self.data, index):
-            msg = '{}\nexpected to match query result starting at index={}, 
but it didn\'t'.format(piped_representation(data), index or 0)
+        index = index or 0
+        # align sequences
+        idx_mis = get_index_mismatch(data, self.data[index:])
+        if idx_mis is not None:
+            exp_v = data[idx_mis]
+            exp_t = type(exp_v)
+            res_v = self.data[idx_mis]
+            res_t = type(res_v)
+            msg = 'expected to match query result at index {} but it didn\'t 
as {} not equals {}'.format(idx_mis, repr(exp_v), repr(res_v))
             self.fail(msg, data=self.data)
         return self
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to