iro/tests/testWorker.py
changeset 49 b1d0f7ffbb64
parent 48 32763e344d3b
--- a/iro/tests/testWorker.py	Fri Oct 08 00:03:38 2010 +0200
+++ b/iro/tests/testWorker.py	Fri Oct 08 02:07:01 2010 +0200
@@ -5,10 +5,13 @@
 from time import sleep
 
 from multiprocessing import Queue
-from multiprocessing.managers import BaseManager,ListProxy
+from multiprocessing.managers import BaseManager, ListProxy
 
 from iro.worker import Worker
-from iro.job import Job
+from iro.job import Job, SMSJob
+from iro.anbieter.anbieter import anbieter
+from iro.anbieter.content import SMS
+from iro.providerlist import Providerlist
 
 from logging.handlers import BufferingHandler
 
@@ -28,7 +31,6 @@
 
     def emit(self, record):
         if record.exc_info:                                                      #sonst geht das append schief, weil nicht picklebar
-            print record.exc_info
             record.exc_info=record.exc_info[:-1]                                              
         self.buffer.append(record.__dict__)
 
@@ -42,8 +44,10 @@
 class MyManager(BaseManager):
     pass
 MyManager.register('Job', Job) 
+MyManager.register('SMSJob', SMSJob) 
 MyManager.register('BadJob', BadJob) 
 MyManager.register('list', list, ListProxy)
+MyManager.register('Providerlist',Providerlist) 
 
 class TestWorker(unittest.TestCase):
     def setUp(self):
@@ -55,6 +59,9 @@
         self.manager.start()
         self.setUpLogging()
 
+        self.providerlist=self.manager.Providerlist()
+        self.providerlist.add("test", anbieter() , ["sms",  ])
+        
         #eigentlich Workerprocess starten
         self.worker= Worker(self.queue)
         self.worker.start()
@@ -115,7 +122,6 @@
         sleep(.1)
         self.stop()
         self.assertEqual(job.getStatus(),("error",{}))
-        print self.buffer
         self.assertEqual([(l['levelno'],l['msg']) for l in self.buffer if l['name']=="iro.worker"],
                 [(20,'Workerprocess läuft nun...'),
                  (20,'ein neuer Job(1)'),
@@ -124,6 +130,17 @@
         self.assertEqual(self.buffer[-1]['exc_info'][0],type(error))
         self.assertEqual(str(self.buffer[-1]['exc_info'][1]),str(error))
 
+    def testSMSJob(self):
+        job=self.manager.SMSJob(self.providerlist, "test", "name", SMS("message"),[012345])
+        self.assertEqual(job.getStatus(),("init",{}))
+        self.queue.put(job)
+        sleep(.1)
+        self.stop()
+        self.assertEqual(job.getStatus(),("sended",{'failed': [], 'good': []}))
+        self.assertEqual([(l['levelno'],l['msg']) for l in self.buffer if l['name']=="iro.worker"],
+                [(20,'Workerprocess läuft nun...'),
+                 (20,'ein neuer Job(1)'),
+                 (20,'Job(1) fertig ;)')])
 
 
 if __name__ == "__main__":