[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