--- 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__":