adding Offer.provider devel
authorSandro Knauß <knauss@netzguerilla.net>
Fri, 02 Mar 2012 13:59:56 +0100
branchdevel
changeset 211 3fc1f400c107
parent 210 3763babd5e10
child 212 39e4c09e1b60
adding Offer.provider
iro/model/schema.py
tests/db.py
--- a/iro/model/schema.py	Fri Mar 02 13:46:13 2012 +0100
+++ b/iro/model/schema.py	Fri Mar 02 13:59:56 2012 +0100
@@ -66,6 +66,10 @@
     def typs(cls, session):
         return session.query(cls.typ).distinct()
 
+    @classmethod
+    def providers(cls, session, typ):
+        return session.query(cls.provider).filter_by(typ=typ).distinct()
+
 class Message(Base):
     """Wenn ein Vorgang von Iro Kosten erzeugt hat wird eine neue Zeile eingefügt. Solange nicht bezahlt wurde ist <em>isBilled=0</em>."""
     __tablename__ = "message"
--- a/tests/db.py	Fri Mar 02 13:46:13 2012 +0100
+++ b/tests/db.py	Fri Mar 02 13:59:56 2012 +0100
@@ -109,6 +109,23 @@
             self.assertEqual([o.name for o in Offer.routes(session, "sms2").order_by(Offer.name)],["s3"])
             self.assertEqual([o.name for o in Offer.routes(session, "sms").order_by(Offer.name)],["s2","sipgate_basic"])
 
+    def testOfferProviders(self):
+        with self.session() as session:
+            o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms")
+            session.add(o)
+        
+        with self.session() as session:
+            self.assertEqual([o.provider for o in Offer.providers(session, "sms").order_by(Offer.provider)],["sipgate"])
+
+        with self.session() as session:
+            o=Offer(name="s2", provider="sipgate2", route="basic", typ="sms")
+            session.add(o)
+            o=Offer(name="s3", provider="sipgate", route="basic", typ="sms2")
+            session.add(o)
+        
+        with self.session() as session:
+            self.assertEqual([o.provider for o in Offer.providers(session, "sms2").order_by(Offer.provider)],["sipgate"])
+            self.assertEqual([o.provider for o in Offer.providers(session, "sms").order_by(Offer.provider)],["sipgate","sipgate2"])
 
 class Has_RightTests(DBTestCase):
     '''test User.has_right'''