[Checkins] SVN: z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/ added 'connection' property, more tests

Andreas Jung andreas at andreas-jung.com
Fri May 9 10:03:38 EDT 2008


Log message for revision 86567:
  added 'connection' property, more tests
  

Changed:
  U   z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/base.py
  U   z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py

-=-
Modified: z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/base.py
===================================================================
--- z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/base.py	2008-05-09 13:14:44 UTC (rev 86566)
+++ z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/base.py	2008-05-09 14:03:37 UTC (rev 86567)
@@ -105,8 +105,15 @@
 
     @property
     def session(self):
+        """ Return thread-local session """
         return self._sessionmaker()
 
+    @property
+    def connection(self):
+        """ Return underlying connection """
+        session = self.session
+        return session.connection().connection.connection
+
     def registerMapper(self, mapper, name):
         self._mappers.registerMapper(mapper, name)
 

Modified: z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py
===================================================================
--- z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py	2008-05-09 13:14:44 UTC (rev 86566)
+++ z3c.sqlalchemy/branches/zope.sqlalchemy-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py	2008-05-09 14:03:37 UTC (rev 86567)
@@ -37,12 +37,12 @@
         metadata = MetaData(bind=wrapper.engine)
 
         users = Table('users', metadata,
-                      Column('id', Integer, primary_key=True),
+                      Column('user_id', Integer, primary_key=True),
                       Column('firstname', String),
                       Column('lastname', String))
 
         skill = Table('skills', metadata,
-                      Column('id', Integer, primary_key=True),
+                      Column('user_id', Integer, primary_key=True),
                       Column('user_id', Integer),
                       Column('name', String))
 
@@ -165,11 +165,26 @@
         session = db.session
         session.save(User(id=1,firstname='foo', lastname='bar'))
 
+        try:
+            session.flush()
+        except:
+            import traceback; traceback.print_exc()
+            import pdb; pdb.set_trace() 
+
         user = session.query(User).filter_by(firstname='foo')[0]
         Skill = user.getMapper('skills')
         user.skills.append(Skill(id=1, name='Zope'))
         session.flush()
 
+    def testCheckConnection(self):
+        """ Check access to low-level connection """
+        db = createSAWrapper(self.dsn)
+        conn = db.connection               
+        cursor = conn.cursor()
+        cursor.execute('select * from users')
+        rows = cursor.fetchall()
+        self.assertEqual(len(rows), 0)
+
 def test_suite():
     from unittest import TestSuite, makeSuite
     suite = TestSuite()



More information about the Checkins mailing list