tests/dbtestcase.py
branchdevel
changeset 219 4e9d79c35088
parent 141 90c95fdd1e33
equal deleted inserted replaced
218:91f87ad13540 219:4e9d79c35088
     5 
     5 
     6 from shutil import rmtree
     6 from shutil import rmtree
     7 import atexit 
     7 import atexit 
     8 from ngdatabase.mysql import Server, createConfig, Database
     8 from ngdatabase.mysql import Server, createConfig, Database
     9 
     9 
    10 from iro.model import schema, setEngine, setPool
    10 from iro.model import setEngine, setPool
    11 from iro.model.utils import WithSession
    11 from iro.model.utils import WithSession
    12 from iro.model.schema import Base
    12 from iro.model.schema import Base
    13 
    13 
    14 from iro.controller.pool import dbPool
    14 from iro.controller.pool import dbPool
    15 
    15 
    31         return WithSession(self.engine,autocommit)
    31         return WithSession(self.engine,autocommit)
    32     
    32     
    33     def __cleanDB(self):
    33     def __cleanDB(self):
    34         '''cleaning database'''
    34         '''cleaning database'''
    35         with self.session() as session:
    35         with self.session() as session:
    36             for table in schema.__tables__:
    36             for table in reversed(Base.metadata.sorted_tables):
    37                 session.query(getattr(schema,table)).delete()
    37                 session.execute(table.delete())
    38 
    38 
    39 
    39 
    40 class SampleDatabase(Database):
    40 class SampleDatabase(Database):
    41     def createPassword(self):
    41     def createPassword(self):
    42         self.password="test"
    42         self.password="test"
    53 
    53 
    54     def create(self):
    54     def create(self):
    55         self.tdir = mkdtemp(prefix='iro-mysql-')
    55         self.tdir = mkdtemp(prefix='iro-mysql-')
    56         self.server = Server('%s/my.cnf'%self.tdir)
    56         self.server = Server('%s/my.cnf'%self.tdir)
    57         self.db = SampleDatabase("test","test",'%s/my.cnf'%self.tdir)
    57         self.db = SampleDatabase("test","test",'%s/my.cnf'%self.tdir)
    58         self.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%self.tdir, 
    58         self.dburl = 'mysql://test:test@localhost/test?unix_socket=%s/socket'%self.tdir
       
    59         self.engine = create_engine(self.dburl, 
    59                 poolclass = pool.SingletonThreadPool,  pool_size=dbPool.maxthreads, )#echo=True)
    60                 poolclass = pool.SingletonThreadPool,  pool_size=dbPool.maxthreads, )#echo=True)
    60         self.vaild = False
    61         self.valid = False
    61 
    62 
    62     def setUp(self):
    63     def setUp(self):
    63         if not self.vaild:
    64         if not self.valid:
    64             with open('%s/my.cnf'%self.tdir,'w') as cnf:
    65             with open('%s/my.cnf'%self.tdir,'w') as cnf:
    65                 cnf.write(createConfig(self.tdir))
    66                 cnf.write(createConfig(self.tdir))
    66             self.server.create()
    67             self.server.create()
    67             self.server.start()
    68             self.server.start()
    68             self.db.create()
    69             self.db.create()
    69             Base.metadata.create_all(self.engine)
    70             Base.metadata.create_all(self.engine)
    70             setEngine(self.engine)
    71             setEngine(self.engine)
    71             setPool(dbPool)
    72             setPool(dbPool)
    72             self.vaild = True
    73             self.valid = True
    73     
    74     
    74 
    75 
    75 md=ModuleData()
    76 md=ModuleData()
    76 atexit.register(md.close)
    77 atexit.register(md.close)