--- a/iro/controller/viewinterface.py Sun Feb 26 19:46:26 2012 +0100
+++ b/iro/controller/viewinterface.py Mon Feb 27 22:20:19 2012 +0100
@@ -98,9 +98,10 @@
return job.id
@validate(kwd="recipients",func=vEmail)
+ @validate(kwd="frm",func=vEmail)
@vUser
@vRoute(typ="mail")
- def mail(self, user, subject, body, recipients, frm=None, route="default", info=""):
+ def mail(self, user, subject, body, recipients, frm=None, route="default", info=""):
'''Versendet eine Email.
Keywords:
@@ -117,8 +118,11 @@
'''
- job = createJob(recipients, Mail(frm, subject, body), info, route)
- return job.id
+ d = createJob(user, recipients, Mail(subject, body, frm), route, info)
+ def ret(job):
+ return job.dbjob
+ d.addCallback(ret)
+ return d
@validate(kwd="typ", func=vTyp)
@vUser
--- a/iro/model/message.py Sun Feb 26 19:46:26 2012 +0100
+++ b/iro/model/message.py Mon Feb 27 22:20:19 2012 +0100
@@ -58,6 +58,8 @@
con=MIMEText(body.encode("utf-8"), _charset='utf-8')
sub=Header(subject.encode('utf-8'), 'utf-8')
con['Subject']=sub
+ self.subject = subject
+ self.body = body
self.frm=frm
Message.__init__(self, con, typ='mail')
@@ -73,5 +75,8 @@
if self.frm != other.frm:
return False
+
+ return True
- return True
+ def __repr__(self):
+ return "<Mail(%s,%s,%s)>"%(self.subject,self.body,self.frm)
--- a/tests/viewinterface.py Sun Feb 26 19:46:26 2012 +0100
+++ b/tests/viewinterface.py Mon Feb 27 22:20:19 2012 +0100
@@ -6,6 +6,7 @@
from iro.controller.viewinterface import Interface
from iro.controller.pool import taskPool
+from iro.model.message import SMS, Fax, Mail
from iro.model.pool import data
from iro.model.offer import offers
from iro.model.job import exJobs
@@ -206,14 +207,29 @@
with self.session() as session:
u = session.merge(u)
- u.job(jobid)
-
+ job = u.job(jobid)
+ exJob = job.extend
+
+ self.assertEqual(exJob.message,SMS("message",None))
self.assertEqual(taskPool.pool.q.qsize(),1)
+ @inlineCallbacks
def testMail(self):
- pass
- testMail.todo = "To implement"
+ with self.session() as session:
+ u = User(name='test',apikey='abcdef123456789')
+ o = Offer(name='loc',provider="localhost",route="",typ="mail")
+ u.rights.append(Userright(o))
+ session.add(u)
+
+ jobid = yield Interface().mail('abcdef123456789','sub', "hey body!", ['t@te.de'], "frm@t.de" ,['loc'])
+ with self.session() as session:
+ u = session.merge(u)
+ job = u.job(jobid)
+ exJob = job.extend
+
+ self.assertEqual(exJob.message,Mail("sub",'hey body!','frm@t.de'))
+ self.assertEqual(taskPool.pool.q.qsize(),1)
def testFax(self):
pass