--- 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()
--- 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()
--- 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:
--- 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")