patch is applied in rev 1691. also includes a workaround for the specific issue with sqlite (im guessing its sqlite, but it could be pysqlite), which I have posted to the sqlite site at:
http://www.sqlite.org/cvstrac/tktview?tn=1884 all unit tests now pass on my windows machine using pysqlite 2.3.2. Jonathan Ellis wrote: > I'm starting to think there are real problems on windows with sqlite. > > I fixed one that caused a test failure in proxy_engine; patch is attached. > > But I haven't been able to figure out this other one from cascade.py . > What > is happening is that after the first test (the last test in the code, but > the first in unittest) runs, and its tearDownAll method runs > metadata.drop_all(), the engine thinks the users and prefs tables still > exist. So when create_all gets run for the other set of tests, we have a > problem, b/c both tests have a table called users. So create_all says > "oh, > you already exist, I can skip you." But it really doesn't exist; the > insert > fails. (Also, issuing a 2nd, identical drop command throws a > table-does-not-exist exception.) > > I tried to duplicate this ghost table effect outside of SA and failed. > But > here is a shorter SA script that demonstrates the problem: > > from sqlalchemy import * > > db = create_engine('sqlite:///:memory:') > md = BoundMetaData(db) > > users = Table('users', md, > Column('id', Integer, Sequence('user_id_seq', optional=True), > primary_key = True), > Column('name', String(40)), > ) > > md.create_all() > md.drop_all() > md.drop_all() > > Traceback (most recent call last): > File "test3.py", line 13, in ? > md.drop_all() > File "./lib/sqlalchemy\schema.py", line 663, in drop_all > engine.run_callable(do) > File "./lib/sqlalchemy\engine\base.py", line 452, in run_callable > return callable_(conn, *args, **kwargs) > File "./lib/sqlalchemy\schema.py", line 662, in do > conn.drop(table) > File "./lib/sqlalchemy\engine\base.py", line 297, in drop > return self.__engine.drop(entity, connection=self, **kwargs) > File "./lib/sqlalchemy\engine\base.py", line 398, in drop > self._run_visitor(self.dialect.schemadropper, entity, > connection=connection, **kwargs) > File "./lib/sqlalchemy\engine\base.py", line 419, in _run_visitor > element.accept_schema_visitor(visitorcallable(self, conn.proxy, > **kwargs)) > File "./lib/sqlalchemy\schema.py", line 191, in accept_schema_visitor > return visitor.visit_table(self) > File "./lib/sqlalchemy\ansisql.py", line 678, in visit_table > self.execute() > File "./lib/sqlalchemy\engine\base.py", line 681, in execute > return self.proxy(self.buffer.getvalue(), None) > File "./lib/sqlalchemy\engine\base.py", line 350, in proxy > return self._execute_raw(statement, parameters) > File "./lib/sqlalchemy\engine\base.py", line 315, in _execute_raw > self._execute(cursor, statement, parameters, context=context) > File "./lib/sqlalchemy\engine\base.py", line 334, in _execute > raise exceptions.SQLError(statement, parameters, e) > sqlalchemy.exceptions.SQLError: (OperationalError) no such table: users > '\nDROP TABLE users' () > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Sqlalchemy-users mailing list > Sqlalchemy-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users > ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Sqlalchemy-users mailing list Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users