equal
deleted
inserted
replaced
1 import unittest |
1 import unittest |
|
2 |
|
3 from sqlalchemy import create_engine, pool |
|
4 from tempfile import mkdtemp |
|
5 import shutil |
|
6 |
|
7 from ngdatabase.mysql import Server, createConfig, Database |
2 |
8 |
3 from iro.model import schema |
9 from iro.model import schema |
4 from iro.model.utils import WithSession |
10 from iro.model.utils import WithSession |
|
11 from iro.model.schema import Base |
|
12 |
|
13 from iro.controller.pool import dbPool |
5 |
14 |
6 class DBTestCase(unittest.TestCase): |
15 class DBTestCase(unittest.TestCase): |
7 '''a TestCase with DB connection |
16 '''a TestCase with DB connection |
8 you have to set self.session manually in setUp''' |
17 you have to set self.session manually in setUp''' |
9 def __init__(self,*args,**kwargs): |
18 def __init__(self,*args,**kwargs): |
10 self.engine=None |
19 self.engine = md.engine |
11 unittest.TestCase.__init__(self,*args,**kwargs) |
20 unittest.TestCase.__init__(self,*args,**kwargs) |
12 |
21 |
13 def tearDown(self): |
22 def tearDown(self): |
14 self.__cleanDB() |
23 self.__cleanDB() |
15 |
24 |
20 def __cleanDB(self): |
29 def __cleanDB(self): |
21 '''cleaning database''' |
30 '''cleaning database''' |
22 with self.session() as session: |
31 with self.session() as session: |
23 for table in schema.__tables__: |
32 for table in schema.__tables__: |
24 session.query(getattr(schema,table)).delete() |
33 session.query(getattr(schema,table)).delete() |
|
34 |
|
35 class SampleDatabase(Database): |
|
36 def createPassword(self): |
|
37 self.password="test" |
|
38 return self.password |
|
39 |
|
40 class ModuleData: |
|
41 def __init__(self): |
|
42 self.tdir = mkdtemp(prefix='iro-mysql-') |
|
43 self.server = Server('%s/my.cnf'%self.tdir) |
|
44 self.db = SampleDatabase("test","test",'%s/my.cnf'%self.tdir) |
|
45 self.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%self.tdir, |
|
46 poolclass = pool.SingletonThreadPool, pool_size=dbPool.maxthreads, )#echo=True) |
|
47 |
|
48 def setUp(self): |
|
49 with open('%s/my.cnf'%self.tdir,'w') as cnf: |
|
50 cnf.write(createConfig(self.tdir)) |
|
51 self.server.create() |
|
52 self.server.start() |
|
53 self.db.create() |
|
54 Base.metadata.create_all(self.engine) |
|
55 |
|
56 def tearDown(self): |
|
57 self.server.stop() |
|
58 shutil.rmtree(self.tdir) |
|
59 |
|
60 |
|
61 md=ModuleData() |
|
62 |
|
63 def setUpModule(): |
|
64 md.setUp() |
|
65 |
|
66 def tearDownModule(): |
|
67 md.tearDown() |
|
68 |