iro/tests/testWorker.py
author Sandro Knauß <knauss@netzguerilla.net>
Sun, 18 Dec 2011 11:49:46 +0100
branchdevel
changeset 77 7dce6c0f06fb
parent 49 b1d0f7ffbb64
permissions -rw-r--r--
adding database schema to documentation.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
import unittest
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
import logging
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
from time import sleep
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
from multiprocessing import Queue
49
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
     8
from multiprocessing.managers import BaseManager, ListProxy
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
     9
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    10
from iro.worker import Worker
49
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    11
from iro.job import Job, SMSJob
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    12
from iro.anbieter.anbieter import anbieter
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    13
from iro.anbieter.content import SMS
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    14
from iro.providerlist import Providerlist
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
from logging.handlers import BufferingHandler
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
class MyHandler(BufferingHandler):
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    19
    def __init__(self,buffer=None):
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    20
        '''BufferingHandler takes a "capacity" argument
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
        so as to know when to flush. As we're overriding
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
        shouldFlush anyway, we can set a capacity of zero.
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
        You can call flush() manually to clear out the
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    24
        buffer.
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    25
            buffer: log messages to this buffer, needed f.ex for processes or threads'''
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
        BufferingHandler.__init__(self, 0)
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    27
        self.buffer=buffer
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
    def shouldFlush(self):
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
        return False
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
    def emit(self, record):
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    33
        if record.exc_info:                                                      #sonst geht das append schief, weil nicht picklebar
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    34
            record.exc_info=record.exc_info[:-1]                                              
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
        self.buffer.append(record.__dict__)
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
    37
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
    38
class BadJob(Job):
48
32763e344d3b job nun mit start(id), status() gibt list zurück, tests angepasst
Sandro Knauß <knauss@netzguerilla.net>
parents: 42
diff changeset
    39
    def start(self,id=None):
32763e344d3b job nun mit start(id), status() gibt list zurück, tests angepasst
Sandro Knauß <knauss@netzguerilla.net>
parents: 42
diff changeset
    40
        Job.start(self,id)
42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
    41
        raise Exception("Error")
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
    42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
    43
#einen Manager anlegen, der Job und eine Liste anbietet
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
class MyManager(BaseManager):
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
    pass
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
MyManager.register('Job', Job) 
49
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    47
MyManager.register('SMSJob', SMSJob) 
42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
    48
MyManager.register('BadJob', BadJob) 
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    49
MyManager.register('list', list, ListProxy)
49
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    50
MyManager.register('Providerlist',Providerlist) 
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
class TestWorker(unittest.TestCase):
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
    def setUp(self):
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    54
        #erstelle eine Queue&Manager
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    55
        self.manager = MyManager()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    56
        self.queue = Queue()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    57
        
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    58
        #manager starten, damit wir Logging anpassen können
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    59
        self.manager.start()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    60
        self.setUpLogging()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    61
49
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    62
        self.providerlist=self.manager.Providerlist()
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    63
        self.providerlist.add("test", anbieter() , ["sms",  ])
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
    64
        
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    65
        #eigentlich Workerprocess starten
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    66
        self.worker= Worker(self.queue)
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    67
        self.worker.start()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    68
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    69
    def tearDown(self):
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    70
        #Thread&Queue stoppen
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    71
        self.stop()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    72
        
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    73
        #Logging änderungen rückgängig
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    74
        self.tearDownLogging()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    75
        self.manager.shutdown()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    76
    
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    77
    def stop(self):
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    78
        self.queue.close()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    79
        self.queue.join_thread()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    80
        self.worker.terminate()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    81
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    82
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    83
    def setUpLogging(self):
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    84
        '''Logging so umbasteln, das wir alle logging Meldung in self.buf sind'''
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    85
        #wir brauchen eine threadsichere liste
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    86
        self.buffer=self.manager.list()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    87
        
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    88
        #Handler erstellen, der in den Buffer schreibt
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    89
        self.handler = h = MyHandler(self.buffer)
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    90
        self.logger =l= logging.getLogger()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    91
        
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    92
        #Level anpassen 
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    93
        l.setLevel(logging.DEBUG)
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    94
        h.setLevel(logging.DEBUG)
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
        l.addHandler(h)
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    97
    def tearDownLogging(self):
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    98
        '''crazy logging hacks wieder entfernen'''
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
    99
        self.logger.removeHandler(self.handler)
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   100
        self.logger.setLevel(logging.NOTSET)
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   101
        self.handler.close()
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   102
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   104
    def testJob(self):
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   105
        '''einen Job verarbeiten'''
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   106
        job=self.manager.Job(None,None,"test")
48
32763e344d3b job nun mit start(id), status() gibt list zurück, tests angepasst
Sandro Knauß <knauss@netzguerilla.net>
parents: 42
diff changeset
   107
        self.assertEqual(job.getStatus(),("init",{}))
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   108
        self.queue.put(job)
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   109
        sleep(.1)
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   110
        self.stop()
48
32763e344d3b job nun mit start(id), status() gibt list zurück, tests angepasst
Sandro Knauß <knauss@netzguerilla.net>
parents: 42
diff changeset
   111
        self.assertEqual(job.getStatus(),("started",{}))
41
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   112
        self.assertEqual([(l['levelno'],l['msg']) for l in self.buffer if l['name']=="iro.worker"],
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   113
                [(20,'Workerprocess läuft nun...'),
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   114
                 (20,'ein neuer Job(1)'),
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   115
                 (20,'Job(1) fertig ;)')])
02e9b54ef4f0 testWorker benutzbar machen & test laufen lassen
Sandro Knauß <knauss@netzguerilla.net>
parents: 40
diff changeset
   116
42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   117
    def testBadJob(self):
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   118
        '''einen Job verarbeiten, der fehlschlägt'''
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   119
        job=self.manager.BadJob(None,None,"test")
48
32763e344d3b job nun mit start(id), status() gibt list zurück, tests angepasst
Sandro Knauß <knauss@netzguerilla.net>
parents: 42
diff changeset
   120
        self.assertEqual(job.getStatus(),("init",{}))
42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   121
        self.queue.put(job)
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   122
        sleep(.1)
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   123
        self.stop()
48
32763e344d3b job nun mit start(id), status() gibt list zurück, tests angepasst
Sandro Knauß <knauss@netzguerilla.net>
parents: 42
diff changeset
   124
        self.assertEqual(job.getStatus(),("error",{}))
42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   125
        self.assertEqual([(l['levelno'],l['msg']) for l in self.buffer if l['name']=="iro.worker"],
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   126
                [(20,'Workerprocess läuft nun...'),
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   127
                 (20,'ein neuer Job(1)'),
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   128
                 (40,'Job(1) fehlgeschlagen :(')])
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   129
        error=Exception('Error')
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   130
        self.assertEqual(self.buffer[-1]['exc_info'][0],type(error))
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   131
        self.assertEqual(str(self.buffer[-1]['exc_info'][1]),str(error))
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   132
49
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   133
    def testSMSJob(self):
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   134
        job=self.manager.SMSJob(self.providerlist, "test", "name", SMS("message"),[012345])
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   135
        self.assertEqual(job.getStatus(),("init",{}))
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   136
        self.queue.put(job)
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   137
        sleep(.1)
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   138
        self.stop()
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   139
        self.assertEqual(job.getStatus(),("sended",{'failed': [], 'good': []}))
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   140
        self.assertEqual([(l['levelno'],l['msg']) for l in self.buffer if l['name']=="iro.worker"],
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   141
                [(20,'Workerprocess läuft nun...'),
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   142
                 (20,'ein neuer Job(1)'),
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 48
diff changeset
   143
                 (20,'Job(1) fertig ;)')])
42
1a9f191389a4 test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents: 41
diff changeset
   144
40
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   145
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   146
if __name__ == "__main__":
5d177c9d7fd2 testWorker.py hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   147
    unittest.main()