diff options
Diffstat (limited to 'lib/sqlalchemy/test/assertsql.py')
-rw-r--r-- | lib/sqlalchemy/test/assertsql.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/sqlalchemy/test/assertsql.py b/lib/sqlalchemy/test/assertsql.py index 1417c2e43..d67de2355 100644 --- a/lib/sqlalchemy/test/assertsql.py +++ b/lib/sqlalchemy/test/assertsql.py @@ -156,19 +156,24 @@ class CompiledSQL(SQLMatchRule): if not isinstance(params, list): params = [params] - # do a positive compare only - for param, received in zip(params, _received_parameters): - for k, v in param.iteritems(): - if k not in received or received[k] != v: - equivalent = False - break + all_params = list(params) + all_received = list(_received_parameters) + while params: + param = params.pop(0) + if param not in _received_parameters: + equivalent = False + break + else: + _received_parameters.remove(param) + if _received_parameters: + equivalent = False else: params = {} self._result = equivalent if not self._result: self._errmsg = "Testing for compiled statement %r partial params %r, " \ - "received %r with params %r" % (self.statement, params, _received_statement, _received_parameters) + "received %r with params %r" % (self.statement, all_params, _received_statement, all_received) class CountStatements(AssertRule): |