diff -r 32763e344d3b -r b1d0f7ffbb64 iro/tests/testWorker.py --- 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__":