tests/db.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
from sqlalchemy import create_engine, pool
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
from tempfile import mkdtemp
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
import shutil
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
from datetime import datetime
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
from iro.model import POOL_SIZE as DB_POOL_SIZE
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
from iro.model.schema import User, Base, Offer, Userright, Job, Message
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
from decimal import Decimal
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
from ngdatabase.mysql import Server, createConfig, Database
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
from .dbtestcase import DBTestCase
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
class SampleDatabase(Database):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
    def createPassword(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
        self.password="test"
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
        return self.password
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
class ModuleData:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
    def __init__(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
        self.tdir = mkdtemp(prefix='iro-mysql-')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
        self.server = Server('%s/my.cnf'%self.tdir)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
        self.db = SampleDatabase("test","test",'%s/my.cnf'%self.tdir)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
        self.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%self.tdir,
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
                poolclass = pool.SingletonThreadPool,  pool_size=DB_POOL_SIZE, )#echo=True)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
    def setUp(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
        with open('%s/my.cnf'%self.tdir,'w') as cnf:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
            cnf.write(createConfig(self.tdir))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
        self.server.create()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
        self.server.start()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
        self.db.create()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
        Base.metadata.create_all(self.engine)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
    
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
    def tearDown(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
        self.server.stop()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
        shutil.rmtree(self.tdir)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
 
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
md=ModuleData()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
def setUpModule():
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
    md.setUp()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
def tearDownModule():
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
    md.tearDown()
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
class DBTests(DBTestCase):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
    """tests for the db model"""
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
    def setUp(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
        if not self.engine:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
            self.engine = md.engine
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
    
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
    def testRoutes(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
        '''test routes'''
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
            u=User(name='test',apikey='abcdef123456789')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
            o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
            u.rights.append(Userright(o)) 
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
            session.add(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
        
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
            u=session.merge(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
            self.failUnlessEqual(u.routes('sms').all(),[('sipgate_basic',),])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    66
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
    def testTyps(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    70
            o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
            session.add(o)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
        
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
            self.failUnlessEqual(session.typs.all(),[('sms',),])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
            o=Offer(name="s2", provider="sipgate", route="basic", typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    78
            o=Offer(name="s3", provider="sipgate", route="basic", typ="sms2")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
            session.add(o)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
        
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
            self.failUnlessEqual(session.typs.order_by(Offer.typ).all(),[('sms',),('sms2',)])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    83
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
class BillTest(DBTestCase):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
    """test the bill function"""
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
    def setUp(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
        if not self.engine:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    89
            self.engine = md.engine
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    90
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    91
    def testBill(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    92
        '''test bill function'''
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    93
        apikey='abcdef123456789'
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
            u=User(name='test',apikey=apikey)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
            session.add(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    97
            o = Offer(name='sipgate_basic',provider="sipgate",route="basic",typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    98
            j = Job(hash='a1',info='i',status='sended')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    99
            m = Message(recipient='0123456789', isBilled=False, date=datetime.now() , price=0.30, offer=o, job=j)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   100
            u.rights.append(Userright(o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   101
            u.jobs.append(j)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   102
            session.add(m)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   104
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   105
            u=session.merge(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   106
            self.failUnlessEqual(u.rights[0].bill.all(),[(1L,Decimal('0.3000'),'i')])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   107
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   108
    def testBillAgreget(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   109
        apikey='abcdef123456789'
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   110
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   111
            u=User(name='test',apikey=apikey)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   112
            session.add(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   113
            o = Offer(name='sipgate_basic',provider="sipgate",route="basic",typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   114
            j = Job(hash='a1',info='i',status='sended')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   115
            j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now() , price=0.30, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   116
            j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now() , price=0.4, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   117
            u.rights.append(Userright(o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   118
            u.jobs.append(j)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   119
 
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   120
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   121
            u=session.merge(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   122
            self.failUnlessEqual(u.rights[0].bill.all(),[(2L,Decimal('0.7000'),'i')])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   123
        
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   124
    def testBillIsBilled(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   125
        apikey='abcdef123456789'
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   126
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   127
            u=User(name='test',apikey=apikey)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   128
            session.add(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   129
            o = Offer(name='sipgate_basic',provider="sipgate",route="basic",typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   130
            j = Job(hash='a1',info='i',status='sended')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   131
            j.messages.append(Message(recipient='0123456789', isBilled=True, date=datetime.now() , price=0.30, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   132
            j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now() , price=0.4, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   133
            u.rights.append(Userright(o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   134
            u.jobs.append(j)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   135
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   136
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   137
            u=session.merge(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   138
            self.failUnlessEqual(u.rights[0].bill.all(),[(1L,Decimal('0.4000'),'i')])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   139
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   140
    def testBillMultipleJobs(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   141
        apikey='abcdef123456789'
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   142
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   143
            u=User(name='test',apikey=apikey)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   144
            session.add(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   145
            o = Offer(name='sipgate_basic',provider="sipgate",route="basic",typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   146
            u.rights.append(Userright(o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   147
            
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   148
            j = Job(hash='a1',info='i',status='sended')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   149
            j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now() , price=0.4, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   150
            u.jobs.append(j)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   151
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   152
            j = Job(hash='a2',info='a',status='sended')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   153
            j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.4, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   154
            u.jobs.append(j) 
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   155
        
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   156
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   157
            u=session.merge(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   158
            self.failUnlessEqual(u.rights[0].bill.order_by(Job.info).all(),
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   159
                    [(1L,Decimal('0.4000'),'a'),
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   160
                    (1L,Decimal('0.4000'),'i')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   161
                    ])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   162
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   163
    def testBillMultipleOffers(self):
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   164
        apikey='abcdef123456789'
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   165
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   166
            u=User(name='test',apikey=apikey)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   167
            session.add(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   168
            o = Offer(name='sipgate_basic',provider="sipgate",route="basic",typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   169
            u.rights.append(Userright(o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   170
            
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   171
            j = Job(hash='a2',info='a',status='sended')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   172
            j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.4, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   173
            u.jobs.append(j) 
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   174
 
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   175
            o = Offer(name='sipgate_gold',provider="sipgate",route="gold",typ="sms")
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   176
            u.rights.append(Userright(offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   177
            
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   178
            j = Job(hash='a3',info='a',status='sended')
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   179
            j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.5, offer=o))
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   180
            u.jobs.append(j) 
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   181
       
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   182
        with self.session() as session:
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   183
            u=session.merge(u)
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   184
            self.failUnlessEqual(u.rights[0].bill.all(),
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   185
                    [(1L,Decimal('0.4000'),'a')])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   186
        
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   187
            self.failUnlessEqual(u.rights[1].bill.all(),[(1L,Decimal('0.5000'),'a')])
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   188
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   189
if __name__ == '__main__':
c51c3e8c3ec0 schema tests without xmlrpc interface
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   190
        unittest.main()