# HG changeset patch # User Sandro Knauß # Date 1329159174 -3600 # Node ID 14c99c89edf44d586a13afb7545970dcaae3e0b5 # Parent ff8448fb07e7571d3a74d92b3873daef9102d44c using extendProvide in Job.create diff -r ff8448fb07e7 -r 14c99c89edf4 iro/model/job.py --- a/iro/model/job.py Mon Feb 13 19:50:01 2012 +0100 +++ b/iro/model/job.py Mon Feb 13 19:52:54 2012 +0100 @@ -2,6 +2,7 @@ import schema from .dbdefer import dbdefer +from .offer import extendProvider class Status: '''status for one recipient''' @@ -40,8 +41,9 @@ job = schema.Job(info=info, status="started") user.jobs.append(job) session.commit() - - self[job.id] = ExJob(job.id, recipients, message, offers) + + o = extendProvider(user, message.typ, offers, session=session) + self[job.id] = ExJob(job.id, recipients, message, o) return self[job.id] exJobs = ExJobs() diff -r ff8448fb07e7 -r 14c99c89edf4 iro/model/message.py --- a/iro/model/message.py Mon Feb 13 19:50:01 2012 +0100 +++ b/iro/model/message.py Mon Feb 13 19:52:54 2012 +0100 @@ -4,8 +4,10 @@ from email.header import Header class Message: - def __init__(self,content): + def __init__(self,content, typ="Message"): self.content=content + self.typ = typ + def getContent(self): return self.content @@ -18,7 +20,7 @@ class SMS(Message): def __init__(self, cont): - Message.__init__(self,cont) + Message.__init__(self, cont, typ="sms") def sendto(self,anbieter,recipients): anbieter.sendSMS(self,recipients) @@ -26,7 +28,7 @@ class Fax(Message): def __init__(self,header,cont,attachments): - Message.__init__(self,cont) + Message.__init__(self,cont, typ="fax") self.header=header self.attachments=attachments @@ -56,7 +58,7 @@ sub=Header(subject.encode('utf-8'), 'utf-8') con['Subject']=sub self.frm=frm - Message.__init__(self, con) + Message.__init__(self, con, typ='mail') def as_string(self): return self.Message.as_string() diff -r ff8448fb07e7 -r 14c99c89edf4 iro/model/offer.py --- a/iro/model/offer.py Mon Feb 13 19:50:01 2012 +0100 +++ b/iro/model/offer.py Mon Feb 13 19:52:54 2012 +0100 @@ -1,5 +1,5 @@ from .dbdefer import dbdefer -from .schema import Offer as DBOffer +import schema from ..config import config @dbdefer @@ -9,7 +9,7 @@ for p in providers: if p not in ret and user.has_right(typ, offer_name = p): ret.append(p) - elif user.providers(typ).filter(DBOffer.provider==p).first(): + elif user.providers(typ).filter(schema.Offer.provider==p).first(): for r in offers[p].routes: n = user.has_right(typ, provider=p, route=r) if n and n not in ret: diff -r ff8448fb07e7 -r 14c99c89edf4 tests/job.py --- a/tests/job.py Mon Feb 13 19:50:01 2012 +0100 +++ b/tests/job.py Mon Feb 13 19:52:54 2012 +0100 @@ -11,7 +11,7 @@ from iro.model.pool import data from iro.model.message import SMS, Fax, Mail -from iro.model.schema import Job, User +from iro.model.schema import Job, User, Offer as DBOffer, Userright from iro.telnumber import Telnumber @@ -21,7 +21,7 @@ from .dbtestcase import DBTestCase -class DumpPool(): +class DummyPool(): def run(self, f,*a,**k): return f(*a,**k) @@ -32,7 +32,7 @@ def setUp(self): DBTestCase.setUp(self) self.pool = data.pool - data.pool = DumpPool() + data.pool = DummyPool() def tearDown(self): exJobs.clear() @@ -50,7 +50,7 @@ self.assertTrue(vInteger(job.dbjob, None, minv=0 )) self.assertEqual(job.message, SMS('test')) self.assertEqual(job.recipients, [Telnumber('123456789')]) - self.assertEqual(job.offers,['test']) + self.assertEqual(job.offers,[]) self.assertEqual(job.tasks,{}) with self.session() as session: @@ -59,6 +59,16 @@ self.assertEqual(exJobs[job.dbjob],job) + def testCreate2(self): + with self.session() as session: + u = User(name='test',apikey='abcdef123456789') + session.add(u) + o=DBOffer(name="test", provider="bla", route="basic", typ="sms") + u.rights.append(Userright(o)) + + job = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test']) + self.assertEqual(job.offers,['test']) + def testGet(self): with self.session() as session: u = User(name='test',apikey='abcdef123456789') @@ -119,6 +129,8 @@ with self.session() as session: u = User(name='test',apikey='abcdef123456789') session.add(u) + o=DBOffer(name="test", provider="bla", route="basic", typ="sms") + u.rights.append(Userright(o)) offers["test"] = Offer("test")