tests/dbtestcase.py
author Sandro Knauß <knauss@netzguerilla.net>
Mon, 30 Jan 2012 23:28:14 +0100
branchdevel
changeset 131 c51c3e8c3ec0
child 134 fae3fdfece65
permissions -rw-r--r--
schema tests without xmlrpc interface
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
131
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
import unittest
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
from iro.model import schema
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
from iro.model.utils import WithSession
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
class DBTestCase(unittest.TestCase):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
    '''a TestCase with DB connection
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
    you have to set self.session manually in setUp'''
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
    def __init__(self,*args,**kwargs):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
        self.engine=None
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
        unittest.TestCase.__init__(self,*args,**kwargs)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
    def tearDown(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
        self.__cleanDB()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
    
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
    def session(self,autocommit=True):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
        '''returns a WithSession'''
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
        return WithSession(self.engine,autocommit)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
    
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    20
    def __cleanDB(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
        '''cleaning database'''
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
            for table in schema.__tables__:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
                session.query(getattr(schema,table)).delete()