From: Mike Bayer Date: Sat, 17 Sep 2005 02:49:52 +0000 (+0000) Subject: added sqlite table reflectino and supporting patterns X-Git-Tag: rel_0_1_0~714 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b64095ee8e45094c390e1ee9b01631014fc1f424;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added sqlite table reflectino and supporting patterns --- diff --git a/test/engines.py b/test/engines.py new file mode 100644 index 0000000000..83b985f41e --- /dev/null +++ b/test/engines.py @@ -0,0 +1,63 @@ + +import sqlalchemy.ansisql as ansisql +import sqlalchemy.databases.postgres as postgres +import sqlalchemy.databases.oracle as oracle + +db = ansisql.engine() + +from sqlalchemy.sql import * +from sqlalchemy.schema import * + +from testbase import PersistTest +import unittest, re + + +class EngineTest(PersistTest): + def testsqlitetableops(self): + import sqlalchemy.databases.sqlite as sqllite + db = sqllite.engine(':memory:', {}, echo = True) + self.do_tableops(db) + + def do_tableops(self, db): + users = Table('users', db, + Column('user_id', INT, primary_key = True), + Column('user_name', VARCHAR(20), nullable = False), + Column('test1', CHAR(5), nullable = False), + Column('test2', FLOAT(5,5), nullable = False), + Column('test3', TEXT), + Column('test4', DECIMAL, nullable = False), + Column('test5', TIMESTAMP), + Column('parent_user_id', INT), + Column('test6', DATETIME, nullable = False), + Column('test7', CLOB), + Column('test8', BLOB), + + ) + + addresses = Table('email_addresses', db, + Column('address_id', INT, primary_key = True), + Column('remote_user_id', INT, foreign_key = ForeignKey(users.c.user_id)), + Column('email_address', VARCHAR(20)), + ) + + # really trip it up with a circular reference + users.c.parent_user_id.set_foreign_key(ForeignKey(users.c.user_id)) + + users.build() + addresses.build() + + # clear out table registry + db.tables.clear() + + users = Table('users', db, autoload = True) + addresses = Table('email_addresses', db, autoload = True) + + users.drop() + addresses.drop() + + users.build() + addresses.build() + +if __name__ == "__main__": + unittest.main() + \ No newline at end of file