]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
(no commit message)
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 22 Oct 2005 03:38:30 +0000 (03:38 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 22 Oct 2005 03:38:30 +0000 (03:38 +0000)
lib/sqlalchemy/engine.py
test/testbase.py

index 6e10ad90bd798e267736c1bd9096c08c29cde45b..a36db3885b5ba3f678b4686de88413037273d0aa 100644 (file)
@@ -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):
index 8f7496c631c87fbd9e4eb85b9769ceca04e0974e..7221af1a4c72bc9208a9cbef12b21bc23bc3ceeb 100644 (file)
@@ -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)