test for controller.viewinterface.mail devel
authorSandro Knauß <knauss@netzguerilla.net>
Mon, 27 Feb 2012 22:20:19 +0100
branchdevel
changeset 192 6c708c334f37
parent 191 1816e97881ce
child 193 e5ec4bfa4929
test for controller.viewinterface.mail
iro/controller/viewinterface.py
iro/model/message.py
tests/viewinterface.py
--- 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