# HG changeset patch # User Sandro Knauß # Date 1286496421 -7200 # Node ID b1d0f7ffbb6483c8c9215389ece594db9f9cbeb8 # Parent 32763e344d3b13c922335edff2db625909974b37 testSMSJob diff -r 32763e344d3b -r b1d0f7ffbb64 iro/anbieter/anbieter.py --- a/iro/anbieter/anbieter.py Fri Oct 08 00:03:38 2010 +0200 +++ b/iro/anbieter/anbieter.py Fri Oct 08 02:07:01 2010 +0200 @@ -21,3 +21,6 @@ pass def sendMail(self,mail,recipients): pass + + def setJob(self, job): + self.job=job diff -r 32763e344d3b -r b1d0f7ffbb64 iro/anbieter/smstrade.py --- a/iro/anbieter/smstrade.py Fri Oct 08 00:03:38 2010 +0200 +++ b/iro/anbieter/smstrade.py Fri Oct 08 02:07:01 2010 +0200 @@ -16,10 +16,8 @@ from sipgate import NoValidStatusCode from telnumber import telnumber, NotATelNumber import ConfigParser -import xmlrpclib -import base64 -import gsm0338 import urllib, httplib +from httplib import socket import logging logger=logging.getLogger("smstrade") @@ -57,7 +55,7 @@ try: return self.statusCodes[self.code] except IndexError: - raise UnkownStatusCode(self.code) + raise UnknownStatusCode(self.code) def __int__(self): if not self.code in self.statusCodes.keys(): diff -r 32763e344d3b -r b1d0f7ffbb64 iro/iro.py --- a/iro/iro.py Fri Oct 08 00:03:38 2010 +0200 +++ b/iro/iro.py Fri Oct 08 02:07:01 2010 +0200 @@ -126,7 +126,7 @@ provider.setDefault("fax","sipgate") provider.setDefault("mail","localhost") jobqueue=Joblist(manager, queue, provider) - + userdb=MyUserDB(userlist,jobqueue) #working thread erstellen diff -r 32763e344d3b -r b1d0f7ffbb64 iro/job.py --- a/iro/job.py Fri Oct 08 00:03:38 2010 +0200 +++ b/iro/job.py Fri Oct 08 02:07:01 2010 +0200 @@ -11,9 +11,6 @@ #You should have received a copy of the GNU General Public License #along with this program; if not, see . -import logging -logger=logging.getLogger("job") - class Job(object): ''' Basic class for all jobs @@ -32,6 +29,9 @@ def stop(self): self.status = "stopped" + + def setLog(self,log): + self.log=log def getStatus(self,detailed=False): if detailed and self.status == "started" or self.status == "sended": @@ -48,14 +48,12 @@ return None def addGood(self, good): - logger.debug('Job(%d)-send to %s'%(self.id, str(good))) if type(good) == list: self.dStatus['good']=self.dStatus['good']+good else: self.dStatus['good'].append(good) def addFailed(self, failed): - logger.debug('Job(%d)-faild to send to %s'%(self.id, str(failed))) if type(failed) == list: self.dStatus['failed']=self.dStatus['failed']+failed else: diff -r 32763e344d3b -r b1d0f7ffbb64 iro/providerlist.py --- a/iro/providerlist.py Fri Oct 08 00:03:38 2010 +0200 +++ b/iro/providerlist.py Fri Oct 08 02:07:01 2010 +0200 @@ -37,11 +37,16 @@ llist.sort() return llist + def status(self): + ret="provider:%s"%self.provider + ret +="\ntypes:%s"%self.types + return ret+"\ndefaults:%s"%self.defaults + def getProvider(self, stype, name="default"): if name=="default": return self.getDefault(stype)["class"] - + if not stype in self.provider[name] ["types"]: - raise "argh" + raise Exception("argh") return self.provider[name]["class"] 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__":