From ce4c1064ed318e1cde911d13ddc119dfbe4f6f92 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 26 Nov 2005 19:54:32 +0000 Subject: [PATCH] cleaning up more with command-line args --- test/engines.py | 22 +++++++++------------- test/objectstore.py | 9 ++++++++- test/tables.py | 2 +- test/testbase.py | 29 +++++++++++++++-------------- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/test/engines.py b/test/engines.py index 5a1dfcd0cc..0d1f708acb 100644 --- a/test/engines.py +++ b/test/engines.py @@ -4,8 +4,6 @@ import sqlalchemy.databases.postgres as postgres import sqlalchemy.databases.oracle as oracle import sqlalchemy.databases.sqlite as sqllite -db = ansisql.engine() - from sqlalchemy.sql import * from sqlalchemy.schema import * @@ -13,12 +11,10 @@ from testbase import PersistTest import testbase import unittest, re -db = testbase.get_db() - class EngineTest(PersistTest): def testbasic(self): # really trip it up with a circular reference - users = Table('users', db, + users = Table('users', testbase.db, Column('user_id', INT, primary_key = True), Column('user_name', VARCHAR(20), nullable = False), Column('test1', CHAR(5), nullable = False), @@ -33,7 +29,7 @@ class EngineTest(PersistTest): ) - addresses = Table('email_addresses', db, + addresses = Table('email_addresses', testbase.db, Column('address_id', Integer, primary_key = True), Column('remote_user_id', Integer, ForeignKey(users.c.user_id)), Column('email_address', String(20)), @@ -45,11 +41,11 @@ class EngineTest(PersistTest): addresses.create() # clear out table registry - db.tables.clear() + testbase.db.tables.clear() try: - users = Table('users', db, autoload = True) - addresses = Table('email_addresses', db, autoload = True) + users = Table('users', testbase.db, autoload = True) + addresses = Table('email_addresses', testbase.db, autoload = True) finally: addresses.drop() users.drop() @@ -62,7 +58,7 @@ class EngineTest(PersistTest): def testmultipk(self): table = Table( - 'multi', db, + 'multi', testbase.db, Column('multi_id', Integer, primary_key=True), Column('multi_rev', Integer, primary_key=True), Column('name', String(50), nullable=False), @@ -70,10 +66,10 @@ class EngineTest(PersistTest): ) table.create() # clear out table registry - db.tables.clear() + testbase.db.tables.clear() try: - table = Table('multi', db, autoload=True) + table = Table('multi', testbase.db, autoload=True) finally: table.drop() @@ -91,5 +87,5 @@ class EngineTest(PersistTest): if __name__ == "__main__": - unittest.main() + testbase.main() diff --git a/test/objectstore.py b/test/objectstore.py index e82ce59d60..8b27d65d8b 100644 --- a/test/objectstore.py +++ b/test/objectstore.py @@ -66,6 +66,9 @@ class PKTest(AssertMixin): db.echo = False self.table.drop() db.echo = testbase.echo + def setUp(self): + objectstore.clear() + clear_mappers() def testprimarykey(self): class Entry(object): pass @@ -73,7 +76,11 @@ class PKTest(AssertMixin): e = Entry() e.name = 'entry1' e.value = 'this is entry 1' + e.multi_rev = 2 objectstore.commit() + objectstore.clear() + e2 = Entry.mapper.get(e.multi_id, 2) + self.assert_(e is not e2 and e._instance_key == e2._instance_key) class SaveTest(AssertMixin): @@ -730,4 +737,4 @@ class SaveTest(AssertMixin): if __name__ == "__main__": - unittest.main() + testbase.main() diff --git a/test/tables.py b/test/tables.py index a2ee265e40..b1beff8675 100644 --- a/test/tables.py +++ b/test/tables.py @@ -9,7 +9,7 @@ import testbase __ALL__ = ['db', 'users', 'addresses', 'orders', 'orderitems', 'keywords', 'itemkeywords'] ECHO = testbase.echo -db = testbase.get_db() +db = testbase.db users = Table('users', db, diff --git a/test/testbase.py b/test/testbase.py index 1f7187bf21..c7564f883f 100644 --- a/test/testbase.py +++ b/test/testbase.py @@ -5,21 +5,8 @@ import re, sys import sqlalchemy.databases.postgres as postgres echo = True +db = None -def get_db(): - DBTYPE = 'sqlite_memory' - #DBTYPE = 'postgres' - #DBTYPE = 'sqlite_file' - - if DBTYPE == 'sqlite_memory': - db = engine.create_engine('sqlite', {'filename':':memory:'}, echo = echo) - elif DBTYPE == 'sqlite_file': - db = engine.create_engine('sqlite', {'filename':'querytest.db'}, echo = echo) - elif DBTYPE == 'postgres': - db = engine.create_engine('postgres', {'database':'test', 'host':'127.0.0.1', 'user':'scott', 'password':'tiger'}, echo=echo) - - db = EngineAssert(db) - return db class PersistTest(unittest.TestCase): """persist base class, provides default setUpAll, tearDownAll and echo functionality""" @@ -145,6 +132,20 @@ class TTestSuite(unittest.TestSuite): return (exctype, excvalue, tb) unittest.TestLoader.suiteClass = TTestSuite + +(param, DBTYPE) = (sys.argv.pop(1), sys.argv.pop(1)) +if (param != '--db'): + raise "--db param required" + +if DBTYPE == 'sqlite': + db = engine.create_engine('sqlite', {'filename':':memory:'}, echo = echo) +elif DBTYPE == 'sqlite_file': + db = engine.create_engine('sqlite', {'filename':'querytest.db'}, echo = echo) +elif DBTYPE == 'postgres': + db = engine.create_engine('postgres', {'database':'test', 'host':'127.0.0.1', 'user':'scott', 'password':'tiger'}, echo=echo) + +db = EngineAssert(db) + def runTests(suite): runner = unittest.TextTestRunner(verbosity = 2, descriptions =1) -- 2.47.2