diff -r e0073c462563 -r 57c4450c8ba6 tests/dbtestcase.py --- a/tests/dbtestcase.py Wed Feb 08 14:19:46 2012 +0100 +++ b/tests/dbtestcase.py Thu Feb 09 17:34:47 2012 +0100 @@ -1,9 +1,10 @@ -import unittest +from twisted.trial import unittest from sqlalchemy import create_engine, pool from tempfile import mkdtemp -import shutil +from shutil import rmtree +import atexit from ngdatabase.mysql import Server, createConfig, Database from iro.model import schema, setEngine @@ -16,8 +17,11 @@ '''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 - unittest.TestCase.__init__(self,*args,**kwargs) + + def setUp(self): + md.setUp() def tearDown(self): self.__cleanDB() @@ -32,38 +36,40 @@ for table in schema.__tables__: session.query(getattr(schema,table)).delete() + class SampleDatabase(Database): def createPassword(self): self.password="test" return self.password -class ModuleData: +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.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%self.tdir, poolclass = pool.SingletonThreadPool, pool_size=dbPool.maxthreads, )#echo=True) + self.vaild = False def setUp(self): - 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) + if not self.vaild: + 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) + self.vaild = True - def tearDown(self): - self.server.stop() - shutil.rmtree(self.tdir) - md=ModuleData() - -def setUpModule(): - md.setUp() - -def tearDownModule(): - md.tearDown() - +atexit.register(md.close)