# HG changeset patch # User Sandro Knauß # Date 1330693196 -3600 # Node ID 3fc1f400c107ec107cfde9354038bd5561ea9346 # Parent 3763babd5e10f47a7cca7283ebb2b9777c9b6941 adding Offer.provider diff -r 3763babd5e10 -r 3fc1f400c107 iro/model/schema.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 isBilled=0.""" __tablename__ = "message" diff -r 3763babd5e10 -r 3fc1f400c107 tests/db.py --- 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'''