tests for Userright.default added devel
authorSandro Knauß <knauss@netzguerilla.net>
Thu, 01 Mar 2012 20:07:51 +0100
branchdevel
changeset 203 b543ab9a9724
parent 202 3cc8cca036ab
child 204 4eb663df29fb
tests for Userright.default added
iro/model/schema.py
tests/db.py
--- a/iro/model/schema.py	Thu Mar 01 19:58:02 2012 +0100
+++ b/iro/model/schema.py	Thu Mar 01 20:07:51 2012 +0100
@@ -120,7 +120,7 @@
                 ]
         if default:
             filters.append(Userright.default != None)
-        return object_session(self).query(Userright.offer_name).join(Offer,User).filter(and_(*filters))
+        return object_session(self).query(Userright.offer_name).join(Offer,User).filter(and_(*filters)).order_by(Userright.default)
    
     def providers(self, typ, default = False):
         '''return a query object for all possible providers for a given typ'''
--- a/tests/db.py	Thu Mar 01 19:58:02 2012 +0100
+++ b/tests/db.py	Thu Mar 01 20:07:51 2012 +0100
@@ -22,6 +22,46 @@
             u=session.merge(u)
             self.assertEqual(u.routes('sms').all(),[('sipgate_basic',),])
 
+    def testRoutesNoDefault(self):
+        '''test default routes'''
+        with self.session() as session:
+            u=User(name='test',apikey='abcdef123456789')
+            o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
+            u.rights.append(Userright(o)) 
+            session.add(u)
+        
+        with self.session() as session:
+            u=session.merge(u)
+            self.assertEqual(u.routes('sms',default=True).all(),[])
+
+    def testRoutesDefault(self):
+        '''test default routes'''
+        with self.session() as session:
+            u=User(name='test',apikey='abcdef123456789')
+            o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
+            u.rights.append(Userright(o,default=1)) 
+            session.add(u)
+
+        with self.session() as session:
+            u=session.merge(u)
+            self.assertEqual(u.routes('sms',default=True).all(),[('sipgate_basic',),])
+
+    def testRoutesDefaultOrdering(self):
+        '''test default routes ordering'''
+        with self.session() as session:
+            u=User(name='test',apikey='abcdef123456789')
+            o=Offer(name="s1", provider="sipgate", route="basic", typ="sms")
+            u.rights.append(Userright(o,default=3)) 
+            o=Offer(name="s2", provider="sipgate", route="basic", typ="sms")
+            u.rights.append(Userright(o,default=None)) 
+            o=Offer(name="s3", provider="sipgate", route="basic", typ="sms")
+            u.rights.append(Userright(o,default=1)) 
+            session.add(u)
+
+        with self.session() as session:
+            u=session.merge(u)
+            self.assertEqual(u.routes('sms',default=True).all(),[('s3',),('s1',)])
+
     def testProviders(self):
         '''test providers'''
         with self.session() as session: