--- 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
--- 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():
--- 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
--- 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 <http://www.gnu.org/licenses/>.
-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:
--- 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"]
--- 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__":