[Zope-dev] zope.sqlalchemy+py3 test failures.
Chris McDonough
chrism at plope.com
Mon Sep 26 20:47:39 EST 2011
In case anyone is interested, I've made a stab at porting
zope.sqlalchemy to Python 3 at
http://svn.zope.org/zope.sqlalchemy/branches/chrism-py3/ . Several
tests still fail. I could use some help fixing them.
To run the test suite:
- Create a Python 3.2 virtualenv.
- Install nose into the virtualenv.
- Check out the "chrism-py3" transaction branch from
svn://svn.zope.org/repos/main/transaction/branches/chrism-py3
- Install the "chrism-py3" transaction checkout into the virtualenv,
e.g. $env32/bin/python setup.py develop.
- Install this package into the virtualenv eg. run $env32/bin/python
setup develop.
- Run $env32/bin/python setup.py nosetests.
Currently 2 tests fail:
[chrism at thinko zope.sqlalchemy]$ env32/bin/python setup.py test
running test
running egg_info
writing requirements to src/zope.sqlalchemy.egg-info/requires.txt
writing src/zope.sqlalchemy.egg-info/PKG-INFO
writing namespace_packages to
src/zope.sqlalchemy.egg-info/namespace_packages.txt
writing top-level names to src/zope.sqlalchemy.egg-info/top_level.txt
writing dependency_links to
src/zope.sqlalchemy.egg-info/dependency_links.txt
writing manifest file 'src/zope.sqlalchemy.egg-info/SOURCES.txt'
running build_ext
testTwoEngines (zope.sqlalchemy.tests.MultipleEngineTests) ... ok
testRetry (zope.sqlalchemy.tests.RetryTests) ... ERROR
testRetryThread (zope.sqlalchemy.tests.RetryTests) ... ERROR
testAbortAfterCommit (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testAbortBeforeCommit (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testBulkDelete (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testBulkUpdate (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testCommit (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testCommitWithSavepoint (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ...
ok
testMarkUnknownSession (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ...
ok
testRelations (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testRollbackAttributes (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ...
ok
testSavepoint (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testSimplePopulation (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testThread (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
testTransactionJoining (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ...
ok
testTwoPhase (zope.sqlalchemy.tests.ZopeSQLAlchemyTests) ... ok
======================================================================
ERROR: testRetry (zope.sqlalchemy.tests.RetryTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1633, in _execute_context
context)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/default.py", line 327, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: test_users
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File
"/home/chrism/projects/zope.sqlalchemy/src/zope/sqlalchemy/tests.py",
line 513, in setUp
self.tm1.commit()
File "/home/chrism/projects/transaction/transaction/_manager.py", line
89, in commit
return self.get().commit()
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 342, in commit
reraise(t, v, tb)
File "/home/chrism/projects/transaction/transaction/compat.py", line
60, in reraise
raise value
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 333, in commit
self._commitResources()
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 473, in _commitResources
reraise(t, v, tb)
File "/home/chrism/projects/transaction/transaction/compat.py", line
60, in reraise
raise value
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 445, in _commitResources
rm.tpc_begin(self)
File
"/home/chrism/projects/zope.sqlalchemy/src/zope/sqlalchemy/datamanager.py", line 87, in tpc_begin
self.session.flush()
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/session.py", line 1493, in flush
self._flush(objects)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/session.py", line 1562, in _flush
flush_context.execute()
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/unitofwork.py", line 327, in execute
rec.execute(self)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/unitofwork.py", line 471, in execute
uow
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/mapper.py", line 2147, in _save_obj
execute(statement, multiparams)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1399, in execute
params)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1532, in _execute_clauseelement
compiled_sql, distilled_params
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1640, in _execute_context
context)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1777, in _handle_dbapi_exception
from e
sqlalchemy.exc.OperationalError: (OperationalError) no such table:
test_users 'INSERT INTO test_users (id, firstname, lastname) VALUES
(?, ?, ?)' (1, 'udo', 'juergens')
======================================================================
ERROR: testRetryThread (zope.sqlalchemy.tests.RetryTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1633, in _execute_context
context)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/default.py", line 327, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: test_users
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File
"/home/chrism/projects/zope.sqlalchemy/src/zope/sqlalchemy/tests.py",
line 513, in setUp
self.tm1.commit()
File "/home/chrism/projects/transaction/transaction/_manager.py", line
89, in commit
return self.get().commit()
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 342, in commit
reraise(t, v, tb)
File "/home/chrism/projects/transaction/transaction/compat.py", line
60, in reraise
raise value
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 333, in commit
self._commitResources()
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 473, in _commitResources
reraise(t, v, tb)
File "/home/chrism/projects/transaction/transaction/compat.py", line
60, in reraise
raise value
File "/home/chrism/projects/transaction/transaction/_transaction.py",
line 445, in _commitResources
rm.tpc_begin(self)
File
"/home/chrism/projects/zope.sqlalchemy/src/zope/sqlalchemy/datamanager.py", line 87, in tpc_begin
self.session.flush()
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/session.py", line 1493, in flush
self._flush(objects)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/session.py", line 1562, in _flush
flush_context.execute()
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/unitofwork.py", line 327, in execute
rec.execute(self)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/unitofwork.py", line 471, in execute
uow
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/orm/mapper.py", line 2147, in _save_obj
execute(statement, multiparams)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1399, in execute
params)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1532, in _execute_clauseelement
compiled_sql, distilled_params
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1640, in _execute_context
context)
File
"/home/chrism/projects/zope.sqlalchemy/env32/lib/python3.2/site-packages/SQLAlchemy-0.7.2-py3.2.egg/sqlalchemy/engine/base.py", line 1777, in _handle_dbapi_exception
from e
sqlalchemy.exc.OperationalError: (OperationalError) no such table:
test_users 'INSERT INTO test_users (id, firstname, lastname) VALUES
(?, ?, ?)' (1, 'udo', 'juergens')
----------------------------------------------------------------------
Ran 17 tests in 0.152s
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)
More information about the Zope-Dev
mailing list