[Checkins] SVN: zope.sqlalchemy/branches/chrism-py3/ postgres findings and minor test fixes

Chris McDonough chrism at plope.com
Mon Sep 26 20:30:08 EST 2011


Log message for revision 122966:
  postgres findings and minor test fixes

Changed:
  U   zope.sqlalchemy/branches/chrism-py3/py3dev.txt
  U   zope.sqlalchemy/branches/chrism-py3/src/zope/sqlalchemy/tests.py

-=-
Modified: zope.sqlalchemy/branches/chrism-py3/py3dev.txt
===================================================================
--- zope.sqlalchemy/branches/chrism-py3/py3dev.txt	2011-09-26 23:26:01 UTC (rev 122965)
+++ zope.sqlalchemy/branches/chrism-py3/py3dev.txt	2011-09-27 01:30:07 UTC (rev 122966)
@@ -152,3 +152,34 @@
 
 FAILED (errors=2)
 
+This appears to be some sort of Py3+SQLite thing, beacuse if I run the tests
+using Postgres isntead of SQLALchemy (after "env32/bin/easy_install
+py-postgresql", and then running the tests using
+'TEST_DSN="postgresql+pypostgresql://localhost:5432/testing" env32/bin/python
+setup.py nosetests' against Postgres 8.4.8 after a "createdb testing"), I get
+different failures:
+
+======================================================================
+FAIL: testRetryThread (zope.sqlalchemy.tests.RetryTests)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+  File "/home/chrism/projects/zope.sqlalchemy/src/zope/sqlalchemy/tests.py", line 564, in testRetryThread
+    self.assertTrue(retryable, "Error should be retryable")
+AssertionError: None is not true : Error should be retryable
+-------------------- >> begin captured logging << --------------------
+txn.140333906949888: DEBUG: new transaction
+txn.140333906949888: DEBUG: commit <zope.sqlalchemy.datamanager.SessionDataManager object at 0x2dd6ed0>
+txn.140333906949888: DEBUG: commit
+txn.140333906949888: DEBUG: new transaction
+txn.140333906949888: DEBUG: new transaction
+txn.140333906949888: DEBUG: commit <zope.sqlalchemy.datamanager.SessionDataManager object at 0x2dda9d0>
+txn.140333906949888: DEBUG: commit
+txn.140333906949888: DEBUG: new transaction
+txn.140333906949888: DEBUG: abort
+txn.140333906949888: DEBUG: abort
+--------------------- >> end captured logging << ---------------------
+
+----------------------------------------------------------------------
+Ran 18 tests in 5.099s
+
+FAILED (failures=1)

Modified: zope.sqlalchemy/branches/chrism-py3/src/zope/sqlalchemy/tests.py
===================================================================
--- zope.sqlalchemy/branches/chrism-py3/src/zope/sqlalchemy/tests.py	2011-09-26 23:26:01 UTC (rev 122965)
+++ zope.sqlalchemy/branches/chrism-py3/src/zope/sqlalchemy/tests.py	2011-09-27 01:30:07 UTC (rev 122966)
@@ -288,18 +288,18 @@
         s1 = t.savepoint()
         session.add(User(id=1, firstname='udo', lastname='juergens'))
         session.flush()
-        self.failUnless(len(query.all())==1, "Users table should have one row")
+        self.assertTrue(len(query.all())==1, "Users table should have one row")
         
         s2 = t.savepoint()
         session.add(User(id=2, firstname='heino', lastname='n/a'))
         session.flush()
-        self.failUnless(len(query.all())==2, "Users table should have two rows")
+        self.assertTrue(len(query.all())==2, "Users table should have two rows")
         
         s2.rollback()
-        self.failUnless(len(query.all())==1, "Users table should have one row")
+        self.assertTrue(len(query.all())==1, "Users table should have one row")
         
         s1.rollback()
-        self.failIf(query.all(), "Users table should be empty")
+        self.assertFalse(query.all(), "Users table should be empty")
 
     def testRollbackAttributes(self):
         use_savepoint = not engine.url.drivername in tx.NO_SAVEPOINT_SUPPORT
@@ -309,7 +309,7 @@
         t = transaction.get()
         session = Session()
         query = session.query(User)
-        self.failIf(query.all(), "Users table should be empty")
+        self.assertFalse(query.all(), "Users table should be empty")
         
         s1 = t.savepoint()
         user = User(id=1, firstname='udo', lastname='juergens')
@@ -491,7 +491,6 @@
         self.mappers = setup_mappers()
         metadata.drop_all(engine)
         metadata.create_all(engine)
-
         self.tm1 = transaction.TransactionManager()
         self.tm2 = transaction.TransactionManager()
         # With psycopg2 you might supply isolation_level='SERIALIZABLE' here,
@@ -523,9 +522,9 @@
         tm1, tm2, s1, s2 = self.tm1, self.tm2, self.s1, self.s2
         # make sure we actually start a session.
         tm1.begin()
-        self.failUnless(len(s1.query(User).all())==1, "Users table should have one row")
+        self.assertTrue(len(s1.query(User).all())==1, "Users table should have one row")
         tm2.begin()
-        self.failUnless(len(s2.query(User).all())==1, "Users table should have one row")
+        self.assertTrue(len(s2.query(User).all())==1, "Users table should have one row")
         s1.query(User).delete()
         user = s2.query(User).get(1)
         user.lastname = u('smith')
@@ -536,17 +535,17 @@
         except orm.exc.ConcurrentModificationError as e:
             # This error is thrown when the number of updated rows is not as expected
             raised = True
-        self.failUnless(raised, "Did not raise expected error")
-        self.failUnless(tm2._retryable(type(e), e), "Error should be retryable")
+            self.assertTrue(tm2._retryable(type(e), e), "Error should be retryable")
+        self.assertTrue(raised, "Did not raise expected error")
 
     def testRetryThread(self):
         tm1, tm2, s1, s2 = self.tm1, self.tm2, self.s1, self.s2
         # make sure we actually start a session.
         tm1.begin()
-        self.failUnless(len(s1.query(User).all())==1, "Users table should have one row")
+        self.assertTrue(len(s1.query(User).all())==1, "Users table should have one row")
         tm2.begin()
         s2.connection().execute("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE")
-        self.failUnless(len(s2.query(User).all())==1, "Users table should have one row")
+        self.assertTrue(len(s2.query(User).all())==1, "Users table should have one row")
         s1.query(User).delete()
         raised = False
 
@@ -561,8 +560,9 @@
         except exc.DBAPIError as e:
             # This error wraps the underlying DBAPI module error, some of which are retryable
             raised = True
-        self.failUnless(raised, "Did not raise expected error")
-        self.failUnless(tm2._retryable(type(e), e), "Error should be retryable")
+            retryable = tm2._retryable(type(e), e)
+            self.assertTrue(retryable, "Error should be retryable")
+        self.assertTrue(raised, "Did not raise expected error")
         thread.join() # well, we must have joined by now
 
 



More information about the checkins mailing list