From 574e11de5e315034a6ecb5c96007ff7ec76f9aa0 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 22 Oct 2005 03:38:30 +0000 Subject: [PATCH] --- lib/sqlalchemy/engine.py | 2 ++ test/testbase.py | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 6e10ad90bd..a36db3885b 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -250,6 +250,8 @@ class RowProxy: 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): diff --git a/test/testbase.py b/test/testbase.py index 8f7496c631..7221af1a4c 100644 --- a/test/testbase.py +++ b/test/testbase.py @@ -1,6 +1,8 @@ import unittest import StringIO import sqlalchemy.engine as engine +import re +import sqlalchemy.databases.postgres as postgres echo = True @@ -56,11 +58,16 @@ class EngineAssert(object): 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) -- 2.47.2