tests/db.py
branchdevel
changeset 202 3cc8cca036ab
parent 150 c6896c3374c4
child 203 b543ab9a9724
equal deleted inserted replaced
201:843a7bcecbc8 202:3cc8cca036ab
    18             u.rights.append(Userright(o)) 
    18             u.rights.append(Userright(o)) 
    19             session.add(u)
    19             session.add(u)
    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.assertEqual(u.routes('sms').all(),[('sipgate_basic',),])
    24 
    24 
    25     def testProviders(self):
    25     def testProviders(self):
    26         '''test providers'''
    26         '''test providers'''
    27         with self.session() as session:
    27         with self.session() as session:
    28             u=User(name='test',apikey='abcdef123456789')
    28             u=User(name='test',apikey='abcdef123456789')
    30             u.rights.append(Userright(o)) 
    30             u.rights.append(Userright(o)) 
    31             session.add(u)
    31             session.add(u)
    32         
    32         
    33         with self.session() as session:
    33         with self.session() as session:
    34             u=session.merge(u)
    34             u=session.merge(u)
    35             self.failUnlessEqual(u.providers('sms').all(),[('sipgate',),])
    35             self.assertEqual(u.providers('sms').all(),[('sipgate',),])
    36 
    36 
    37     def testTyps(self):
    37     def testTyps(self):
    38         with self.session() as session:
    38         with self.session() as session:
    39             o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
    39             o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
    40             session.add(o)
    40             session.add(o)
    41         
    41         
    42         with self.session() as session:
    42         with self.session() as session:
    43             self.failUnlessEqual(session.typs.all(),[('sms',),])
    43             self.assertEqual(session.typs.all(),[('sms',),])
    44 
    44 
    45         with self.session() as session:
    45         with self.session() as session:
    46             o=Offer(name="s2", provider="sipgate", route="basic", typ="sms")
    46             o=Offer(name="s2", provider="sipgate", route="basic", typ="sms")
    47             o=Offer(name="s3", provider="sipgate", route="basic", typ="sms2")
    47             o=Offer(name="s3", provider="sipgate", route="basic", typ="sms2")
    48             session.add(o)
    48             session.add(o)
    49         
    49         
    50         with self.session() as session:
    50         with self.session() as session:
    51             self.failUnlessEqual(session.typs.order_by(Offer.typ).all(),[('sms',),('sms2',)])
    51             self.assertEqual(session.typs.order_by(Offer.typ).all(),[('sms',),('sms2',)])
    52 
    52 
    53 class Has_RightTests(DBTestCase):
    53 class Has_RightTests(DBTestCase):
    54     '''test User.has_right'''
    54     '''test User.has_right'''
    55     def testSimple(self):
    55     def testSimple(self):
    56         '''test a very simple case'''
    56         '''test a very simple case'''
    60             u.rights.append(Userright(o)) 
    60             u.rights.append(Userright(o)) 
    61             session.add(u)
    61             session.add(u)
    62         
    62         
    63         with self.session() as session:
    63         with self.session() as session:
    64             u=session.merge(u)
    64             u=session.merge(u)
    65             self.failUnlessEqual(u.has_right("sms"),"sipgate_basic")
    65             self.assertEqual(u.has_right("sms"),"sipgate_basic")
    66             self.failUnlessEqual(u.has_right("sms", offer_name="sipgate_basic"),"sipgate_basic")
    66             self.assertEqual(u.has_right("sms", offer_name="sipgate_basic"),"sipgate_basic")
    67             self.failUnlessEqual(u.has_right("sms", route="basic"),"sipgate_basic")
    67             self.assertEqual(u.has_right("sms", route="basic"),"sipgate_basic")
    68             self.failUnlessEqual(u.has_right("sms", provider="sipgate"),"sipgate_basic")
    68             self.assertEqual(u.has_right("sms", provider="sipgate"),"sipgate_basic")
    69 
    69 
    70     def testDouble(self):
    70     def testDouble(self):
    71         '''now we have different routes'''
    71         '''now we have different routes'''
    72         with self.session() as session:
    72         with self.session() as session:
    73             u=User(name='test',apikey='abcdef123456789')
    73             u=User(name='test',apikey='abcdef123456789')
    77             u.rights.append(Userright(o)) 
    77             u.rights.append(Userright(o)) 
    78             session.add(u)
    78             session.add(u)
    79         
    79         
    80         with self.session() as session:
    80         with self.session() as session:
    81             u=session.merge(u)
    81             u=session.merge(u)
    82             self.failUnlessEqual(u.has_right("sms", offer_name="b"),"b")
    82             self.assertEqual(u.has_right("sms", offer_name="b"),"b")
    83             self.failUnlessEqual(u.has_right("sms", route="basic"),"b")
    83             self.assertEqual(u.has_right("sms", route="basic"),"b")
    84             self.failUnlessEqual(u.has_right("sms", offer_name="c"),"c")
    84             self.assertEqual(u.has_right("sms", offer_name="c"),"c")
    85             self.failUnlessEqual(u.has_right("sms", route="c"),"c")
    85             self.assertEqual(u.has_right("sms", route="c"),"c")
    86             self.assertRaises(MultipleResultsFound, u.has_right,"sms")
    86             self.assertRaises(MultipleResultsFound, u.has_right,"sms")
    87             self.assertRaises(MultipleResultsFound, u.has_right,"sms", provider="sipgate")
    87             self.assertRaises(MultipleResultsFound, u.has_right,"sms", provider="sipgate")
    88     
    88     
    89     def testUnknown(self):
    89     def testUnknown(self):
    90         ''' a unknown typ'''
    90         ''' a unknown typ'''
    96             u.rights.append(Userright(o)) 
    96             u.rights.append(Userright(o)) 
    97             session.add(u)
    97             session.add(u)
    98         
    98         
    99         with self.session() as session:
    99         with self.session() as session:
   100             u=session.merge(u)
   100             u=session.merge(u)
   101             self.failUnlessEqual(u.has_right("fax", offer_name="b"), None)
   101             self.assertEqual(u.has_right("fax", offer_name="b"), None)
   102             self.failUnlessEqual(u.has_right("fax"), None)
   102             self.assertEqual(u.has_right("fax"), None)
   103 
   103 
   104 
   104 
   105 
   105 
   106 class BillTest(DBTestCase):
   106 class BillTest(DBTestCase):
   107     """test the bill function"""
   107     """test the bill function"""
   119             u.jobs.append(j)
   119             u.jobs.append(j)
   120             session.add(m)
   120             session.add(m)
   121 
   121 
   122         with self.session() as session:
   122         with self.session() as session:
   123             u=session.merge(u)
   123             u=session.merge(u)
   124             self.failUnlessEqual(u.rights[0].bill.all(),[(1L,Decimal('0.3000'),'i')])
   124             self.assertEqual(u.rights[0].bill.all(),[(1L,Decimal('0.3000'),'i')])
   125 
   125 
   126     def testBillAgreget(self):
   126     def testBillAgreget(self):
   127         apikey='abcdef123456789'
   127         apikey='abcdef123456789'
   128         with self.session() as session:
   128         with self.session() as session:
   129             u=User(name='test',apikey=apikey)
   129             u=User(name='test',apikey=apikey)
   135             u.rights.append(Userright(o))
   135             u.rights.append(Userright(o))
   136             u.jobs.append(j)
   136             u.jobs.append(j)
   137  
   137  
   138         with self.session() as session:
   138         with self.session() as session:
   139             u=session.merge(u)
   139             u=session.merge(u)
   140             self.failUnlessEqual(u.rights[0].bill.all(),[(2L,Decimal('0.7000'),'i')])
   140             self.assertEqual(u.rights[0].bill.all(),[(2L,Decimal('0.7000'),'i')])
   141         
   141         
   142     def testBillIsBilled(self):
   142     def testBillIsBilled(self):
   143         apikey='abcdef123456789'
   143         apikey='abcdef123456789'
   144         with self.session() as session:
   144         with self.session() as session:
   145             u=User(name='test',apikey=apikey)
   145             u=User(name='test',apikey=apikey)
   151             u.rights.append(Userright(o))
   151             u.rights.append(Userright(o))
   152             u.jobs.append(j)
   152             u.jobs.append(j)
   153 
   153 
   154         with self.session() as session:
   154         with self.session() as session:
   155             u=session.merge(u)
   155             u=session.merge(u)
   156             self.failUnlessEqual(u.rights[0].bill.all(),[(1L,Decimal('0.4000'),'i')])
   156             self.assertEqual(u.rights[0].bill.all(),[(1L,Decimal('0.4000'),'i')])
   157 
   157 
   158     def testBillMultipleJobs(self):
   158     def testBillMultipleJobs(self):
   159         apikey='abcdef123456789'
   159         apikey='abcdef123456789'
   160         with self.session() as session:
   160         with self.session() as session:
   161             u=User(name='test',apikey=apikey)
   161             u=User(name='test',apikey=apikey)
   171             j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.4, offer=o))
   171             j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.4, offer=o))
   172             u.jobs.append(j) 
   172             u.jobs.append(j) 
   173         
   173         
   174         with self.session() as session:
   174         with self.session() as session:
   175             u=session.merge(u)
   175             u=session.merge(u)
   176             self.failUnlessEqual(u.rights[0].bill.order_by(Job.info).all(),
   176             self.assertEqual(u.rights[0].bill.order_by(Job.info).all(),
   177                     [(1L,Decimal('0.4000'),'a'),
   177                     [(1L,Decimal('0.4000'),'a'),
   178                     (1L,Decimal('0.4000'),'i')
   178                     (1L,Decimal('0.4000'),'i')
   179                     ])
   179                     ])
   180 
   180 
   181     def testBillMultipleOffers(self):
   181     def testBillMultipleOffers(self):
   197             j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.5, offer=o))
   197             j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.5, offer=o))
   198             u.jobs.append(j) 
   198             u.jobs.append(j) 
   199        
   199        
   200         with self.session() as session:
   200         with self.session() as session:
   201             u=session.merge(u)
   201             u=session.merge(u)
   202             self.failUnlessEqual(u.rights[0].bill.all(),
   202             self.assertEqual(u.rights[0].bill.all(),
   203                     [(1L,Decimal('0.4000'),'a')])
   203                     [(1L,Decimal('0.4000'),'a')])
   204         
   204         
   205             self.failUnlessEqual(u.rights[1].bill.all(),[(1L,Decimal('0.5000'),'a')])
   205             self.assertEqual(u.rights[1].bill.all(),[(1L,Decimal('0.5000'),'a')])
   206 
   206 
   207 
   207 
   208 if __name__ == '__main__':
   208 if __name__ == '__main__':
   209         unittest.main()
   209         unittest.main()