tests for ExtentProviders and default Offers devel
authorSandro Knauß <knauss@netzguerilla.net>
Thu, 01 Mar 2012 21:00:31 +0100
branchdevel
changeset 204 4eb663df29fb
parent 203 b543ab9a9724
child 205 02ae72e8bab9
tests for ExtentProviders and default Offers
iro/model/offer.py
tests/offer.py
--- a/iro/model/offer.py	Thu Mar 01 20:07:51 2012 +0100
+++ b/iro/model/offer.py	Thu Mar 01 21:00:31 2012 +0100
@@ -8,6 +8,8 @@
 def extendProvider(session, user, typ, ps):
     user = session.merge(user)
     ret = []
+    if ps == "default" or ps == ["default"]:
+        ps = (q[0] for q in  user.routes(typ,default=True))
     for p in ps:
         if p not in ret and user.has_right(typ, offer_name = p): 
                 ret.append(p)
--- a/tests/offer.py	Thu Mar 01 20:07:51 2012 +0100
+++ b/tests/offer.py	Thu Mar 01 21:00:31 2012 +0100
@@ -43,7 +43,6 @@
             u = User(name='test',apikey='abcdef123456789')
             session.add(u)
 
-        offer.offers={"blub":None}
         ret = yield offer.extendProvider(u, "sms", ["blub"])
         self.assertEqual(ret, [])
 
@@ -56,7 +55,6 @@
             o=DBOffer(name="blub", provider="bla", route="basic", typ="sms")
             u.rights.append(Userright(o)) 
 
-        offer.offers={"blub":None}
         ret = yield offer.extendProvider(u, "sms", ["blub"])
         self.assertEqual(ret, ["blub"])
 
@@ -101,6 +99,28 @@
         self.assertEqual(ret, ["oh","a"])
 
     @inlineCallbacks
+    def testExtendProviderDefault(self):
+        '''test the extendProvider Function (default)'''
+        with self.session() as session:
+            u = User(name='test',apikey='abcdef123456789')
+            session.add(u)
+            o=DBOffer(name="blub3", provider="bla", route="basic", typ="sms")
+            u.rights.append(Userright(o,default=2)) 
+            o=DBOffer(name="blub", provider="bla", route="basic", typ="sms")
+            u.rights.append(Userright(o,default=1)) 
+            o=DBOffer(name="blub2", provider="bla2", route="basic", typ="sms")
+            u.rights.append(Userright(o)) 
+            o=DBOffer(name="blub4", provider="bla", route="basic", typ="sms")
+            u.rights.append(Userright(o,default=3)) 
+        
+        ret = yield offer.extendProvider(u, "sms", ["default"])
+        self.assertEqual(ret, ["blub","blub3",'blub4'])
+
+        ret = yield offer.extendProvider(u, "sms", "default")
+        self.assertEqual(ret, ["blub","blub3", 'blub4'])
+
+    
+    @inlineCallbacks
     def testLoadOffers(self):
         
         class TestProvider(Provider):
@@ -134,6 +154,3 @@
         self.assertFailure(d, NoProvider)
         return d
     
-    def testExtendProviderDefault(self):
-        pass
-    testExtendProviderDefault.todo = "To implement"