diff -r 1bd4c7f58b3f -r 448dd8d36839 tests/dbtestcase.py --- a/tests/dbtestcase.py Fri Mar 16 12:57:21 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -from twisted.trial import unittest - -from sqlalchemy import create_engine, pool -from tempfile import mkdtemp - -from shutil import rmtree -import atexit -from ngdatabase.mysql import Server, createConfig, Database - -from iro.model import setEngine, setPool -from iro.model.utils import WithSession -from iro.model.schema import Base - -from iro.controller.pool import dbPool - -class DBTestCase(unittest.TestCase): - '''a TestCase with DB connection - you have to set self.session manually in setUp''' - def __init__(self,*args,**kwargs): - unittest.TestCase.__init__(self,*args,**kwargs) - self.engine = md.engine - - def setUp(self): - md.setUp() - - def tearDown(self): - self.__cleanDB() - - def session(self,autocommit=True): - '''returns a WithSession''' - return WithSession(self.engine,autocommit) - - def __cleanDB(self): - '''cleaning database''' - with self.session() as session: - for table in reversed(Base.metadata.sorted_tables): - session.execute(table.delete()) - - -class SampleDatabase(Database): - def createPassword(self): - self.password="test" - return self.password - -class ModuleData(object): - def __init__(self): - self.create() - - def close(self): - self.server.stop() - rmtree(self.tdir) - self.valid= False - - def create(self): - self.tdir = mkdtemp(prefix='iro-mysql-') - self.server = Server('%s/my.cnf'%self.tdir) - self.db = SampleDatabase("test","test",'%s/my.cnf'%self.tdir) - self.dburl = 'mysql://test:test@localhost/test?unix_socket=%s/socket'%self.tdir - self.engine = create_engine(self.dburl, - poolclass = pool.SingletonThreadPool, pool_size=dbPool.maxthreads, )#echo=True) - self.valid = False - - def setUp(self): - if not self.valid: - with open('%s/my.cnf'%self.tdir,'w') as cnf: - cnf.write(createConfig(self.tdir)) - self.server.create() - self.server.start() - self.db.create() - Base.metadata.create_all(self.engine) - setEngine(self.engine) - setPool(dbPool) - self.valid = True - - -md=ModuleData() -atexit.register(md.close)