summaryrefslogtreecommitdiff
path: root/test/testlib/testing.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/testlib/testing.py')
-rw-r--r--test/testlib/testing.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/test/testlib/testing.py b/test/testlib/testing.py
index 03a8e6539..08c3c9192 100644
--- a/test/testlib/testing.py
+++ b/test/testlib/testing.py
@@ -370,6 +370,7 @@ class ExecutionContextWrapper(object):
def __setattr__(self, key, value):
setattr(self.ctx, key, value)
+ trailing_underscore_pattern = re.compile(r'(\W:[\w_#]+)_\b',re.MULTILINE)
def post_execution(self):
ctx = self.ctx
statement = unicode(ctx.compiled)
@@ -412,7 +413,15 @@ class ExecutionContextWrapper(object):
parameters = ctx.compiled_parameters
query = self.convert_statement(query)
- testdata.unittest.assert_(statement == query and (params is None or params == parameters), "Testing for query '%s' params %s, received '%s' with params %s" % (query, repr(params), statement, repr(parameters)))
+ equivalent = ( (statement == query)
+ or ( (config.db.name == 'oracle') and (self.trailing_underscore_pattern.sub(r'\1', statement) == query) )
+ ) \
+ and \
+ ( (params is None) or (params == parameters)
+ or params == [dict((k.strip('_'), v) for (k, v) in p.items())for p in parameters]
+ )
+ testdata.unittest.assert_(equivalent,
+ "Testing for query '%s' params %s, received '%s' with params %s" % (query, repr(params), statement, repr(parameters)))
testdata.sql_count += 1
self.ctx.post_execution()