def __init__(self, parent, row):
self.parent = parent
self.row = row
+ def __iter__(self):
+ return iter(self.row)
def __eq__(self, other):
return (other is self) or (other == tuple([self.parent._get_col(self.row, key) for key in range(0, len(self.row))]))
def __repr__(self):
import unittest
import StringIO
import sqlalchemy.engine as engine
+import re
+import sqlalchemy.databases.postgres as postgres
echo = True
def execute(self, statement, parameters, **kwargs):
self.engine.echo = self.echo
self.engine.logger = self.logger
- if self.assert_list is not None:
+
+ if self.assert_list is not None and not (isinstance(self.engine, postgres.PGSQLEngine) and re.match(r'oid', statement, re.S)):
item = self.assert_list.pop()
(query, params) = item
if callable(params):
params = params()
+
+ if isinstance(self.engine, postgres.PGSQLEngine):
+ query = re.sub(r':([\w_]+)', r"%(\1)s", query)
+
self.unittest.assert_(statement == query and params == parameters, "Testing for query '%s' params %s, received '%s' with params %s" % (query, repr(params), statement, repr(parameters)))
return self.realexec(statement, parameters, **kwargs)