tests/db.py
branchdevel
changeset 150 c6896c3374c4
parent 138 57c4450c8ba6
child 202 3cc8cca036ab
equal deleted inserted replaced
149:bb3e16224bbd 150:c6896c3374c4
     1 import unittest
     1 import unittest
     2 
     2 from sqlalchemy.orm.exc import MultipleResultsFound
     3 from datetime import datetime
     3 from datetime import datetime
     4 
     4 
     5 from iro.model.schema import User, Offer, Userright, Job, Message
     5 from iro.model.schema import User, Offer, Userright, Job, Message
     6 from decimal import Decimal
     6 from decimal import Decimal
     7 
     7 
    20         
    20         
    21         with self.session() as session:
    21         with self.session() as session:
    22             u=session.merge(u)
    22             u=session.merge(u)
    23             self.failUnlessEqual(u.routes('sms').all(),[('sipgate_basic',),])
    23             self.failUnlessEqual(u.routes('sms').all(),[('sipgate_basic',),])
    24 
    24 
       
    25     def testProviders(self):
       
    26         '''test providers'''
       
    27         with self.session() as session:
       
    28             u=User(name='test',apikey='abcdef123456789')
       
    29             o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
       
    30             u.rights.append(Userright(o)) 
       
    31             session.add(u)
       
    32         
       
    33         with self.session() as session:
       
    34             u=session.merge(u)
       
    35             self.failUnlessEqual(u.providers('sms').all(),[('sipgate',),])
    25 
    36 
    26     def testTyps(self):
    37     def testTyps(self):
    27         with self.session() as session:
    38         with self.session() as session:
    28             o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
    39             o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
    29             session.add(o)
    40             session.add(o)
    36             o=Offer(name="s3", provider="sipgate", route="basic", typ="sms2")
    47             o=Offer(name="s3", provider="sipgate", route="basic", typ="sms2")
    37             session.add(o)
    48             session.add(o)
    38         
    49         
    39         with self.session() as session:
    50         with self.session() as session:
    40             self.failUnlessEqual(session.typs.order_by(Offer.typ).all(),[('sms',),('sms2',)])
    51             self.failUnlessEqual(session.typs.order_by(Offer.typ).all(),[('sms',),('sms2',)])
       
    52 
       
    53 class Has_RightTests(DBTestCase):
       
    54     '''test User.has_right'''
       
    55     def testSimple(self):
       
    56         '''test a very simple case'''
       
    57         with self.session() as session:
       
    58             u=User(name='test',apikey='abcdef123456789')
       
    59             o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
       
    60             u.rights.append(Userright(o)) 
       
    61             session.add(u)
       
    62         
       
    63         with self.session() as session:
       
    64             u=session.merge(u)
       
    65             self.failUnlessEqual(u.has_right("sms"),"sipgate_basic")
       
    66             self.failUnlessEqual(u.has_right("sms", offer_name="sipgate_basic"),"sipgate_basic")
       
    67             self.failUnlessEqual(u.has_right("sms", route="basic"),"sipgate_basic")
       
    68             self.failUnlessEqual(u.has_right("sms", provider="sipgate"),"sipgate_basic")
       
    69 
       
    70     def testDouble(self):
       
    71         '''now we have different routes'''
       
    72         with self.session() as session:
       
    73             u=User(name='test',apikey='abcdef123456789')
       
    74             o=Offer(name="b", provider="sipgate", route="basic", typ="sms")
       
    75             u.rights.append(Userright(o)) 
       
    76             o=Offer(name="c", provider="sipgate", route="c", typ="sms")
       
    77             u.rights.append(Userright(o)) 
       
    78             session.add(u)
       
    79         
       
    80         with self.session() as session:
       
    81             u=session.merge(u)
       
    82             self.failUnlessEqual(u.has_right("sms", offer_name="b"),"b")
       
    83             self.failUnlessEqual(u.has_right("sms", route="basic"),"b")
       
    84             self.failUnlessEqual(u.has_right("sms", offer_name="c"),"c")
       
    85             self.failUnlessEqual(u.has_right("sms", route="c"),"c")
       
    86             self.assertRaises(MultipleResultsFound, u.has_right,"sms")
       
    87             self.assertRaises(MultipleResultsFound, u.has_right,"sms", provider="sipgate")
       
    88     
       
    89     def testUnknown(self):
       
    90         ''' a unknown typ'''
       
    91         with self.session() as session:
       
    92             u=User(name='test',apikey='abcdef123456789')
       
    93             o=Offer(name="b", provider="sipgate", route="basic", typ="sms")
       
    94             u.rights.append(Userright(o)) 
       
    95             o=Offer(name="c", provider="sipgate", route="c", typ="sms")
       
    96             u.rights.append(Userright(o)) 
       
    97             session.add(u)
       
    98         
       
    99         with self.session() as session:
       
   100             u=session.merge(u)
       
   101             self.failUnlessEqual(u.has_right("fax", offer_name="b"), None)
       
   102             self.failUnlessEqual(u.has_right("fax"), None)
       
   103 
    41 
   104 
    42 
   105 
    43 class BillTest(DBTestCase):
   106 class BillTest(DBTestCase):
    44     """test the bill function"""
   107     """test the bill function"""
    45     
   108