--- a/tests/job.py Thu Feb 09 17:35:23 2012 +0100
+++ b/tests/job.py Thu Feb 09 17:36:31 2012 +0100
@@ -1,42 +1,41 @@
import unittest
+from Queue import deque
-from iro.controller.task import createJob
+from iro.controller.task import createJob, Task
+from iro.controller.pool import taskPool
-from iro.model.job import jobs, Job
+from iro.model.job import exJobs, ExJob
from iro.model.pool import data
from iro.model.message import SMS, Fax, Mail
-from iro.model.schema import Job as DBJob, User
+from iro.model.schema import Job, User
from iro.telnumber import Telnumber
-from iro.error import JobNotFound
-from iro.validate import vHash
+from iro.validate import vInteger
-from .dbtestcase import DBTestCase, setUpModule, tearDownModule
+from .dbtestcase import DBTestCase
#activates all logging we can get.
-from twisted.python import log
-import logging
-logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)s(%(processName)s)-%(levelname)s: %(message)s')
-observer = log.PythonLoggingObserver()
-observer.start()
-
class DumpPool():
def run(self, f,*a,**k):
return f(*a,**k)
-data.pool=DumpPool()
-
+class exJobsTest(DBTestCase):
+ '''tests for exJobs'''
-class JobsTest(DBTestCase):
- '''tests for jobs'''
+ def setUp(self):
+ DBTestCase.setUp(self)
+ self.pool = data.pool
+ data.pool = DumpPool()
def tearDown(self):
- jobs.clear()
+ exJobs.clear()
+ data.pool = self.pool
+ self.pool = None
DBTestCase.tearDown(self)
def testCreate(self):
@@ -44,63 +43,87 @@
u = User(name='test',apikey='abcdef123456789')
session.add(u)
- job = jobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
- self.assertIsInstance(job, Job)
- self.assertTrue(vHash(job.id, None, 40, 40))
+ job = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
+ self.assertIsInstance(job, ExJob)
+ self.assertTrue(vInteger(job.dbjob, None, minv=0 ))
+ self.assertEqual(job.message, SMS('test'))
+ self.assertEqual(job.recipients, [Telnumber('123456789')])
+ self.assertEqual(job.offers,['test'])
+ self.assertEqual(job.tasks,{})
with self.session() as session:
- j = session.query(DBJob.hash).all()
- self.assertEqual(j,[(job.id,)])
+ j = session.query(Job.id).all()
+ self.assertEqual(j,[(job.dbjob,)])
- self.assertEqual(jobs[job.id],job)
+ self.assertEqual(exJobs[job.dbjob],job)
def testGet(self):
with self.session() as session:
u = User(name='test',apikey='abcdef123456789')
session.add(u)
- job = Job(u, [Telnumber('123456789')], SMS('test'), ['test'])
- jobs['a1'] = job
+ job = ExJob(None, [Telnumber('123456789')], SMS('test'), ['test'])
+ exJobs[1] = job
- self.assertEqual(len(jobs), 1)
- self.assertEqual(job, jobs['a1'])
+ self.assertEqual(len(exJobs), 1)
+ self.assertEqual(job, exJobs[1])
def testGetFromDB(self):
with self.session() as session:
u = User(name='test',apikey='abcdef123456789')
- job = DBJob(hash='a1', info="info", status="started")
+ job = Job( info="info", status="started")
u.jobs.append(job)
session.add(u)
with self.session() as session:
job = session.merge(job)
u = session.merge(u)
- self.assertEqual(repr(jobs['a1'].dbjob),repr(job))
- self.assertEqual(repr(jobs['a1'].user),repr(u))
- self.assertEqual(jobs['a1'].info, 'info')
+ ejob= ExJob(job.id, [Telnumber('123456789')], SMS('test'), ['test'])
+ exJobs[job.id]=ejob
+ self.assertEqual(job.extend, ejob)
+ self.assertEqual(u.jobs[0].extend,ejob)
- def testUnknownJob(self):
- with self.assertRaises(JobNotFound):
- Job.fromDB('a1234567890')
-
- with self.assertRaises(KeyError):
- jobs['a1234567890']
-
- @unittest.skip('test not implemented')
- def testSyncroniced(self):
- pass
+ def testUnknownExJob(self):
+ self.assertRaises(KeyError,exJobs.__getitem__,'a1234567890')
class JobTest(DBTestCase):
+
+ def setUp(self):
+ DBTestCase.setUp(self)
+ self.pool = data.pool
+ data.pool = DumpPool()
+
+ def tearDown(self):
+ exJobs.clear()
+ data.pool = self.pool
+ self.pool = None
+ taskPool.pool.q.queue = deque()
+ DBTestCase.tearDown(self)
+
def testCreateSMS(self):
- job = createJob([],SMS('sms'),[])
- pass
+ with self.session() as session:
+ u = User(name='test',apikey='abcdef123456789')
+ session.add(u)
+ exjob = createJob(u,[Telnumber('0123325456')],SMS('sms'),[])
+ self.assertEqual(taskPool.pool.q.qsize(),1)
+ self.assertEqual(exjob.tasks.keys(),[Telnumber('0123325456')])
+ self.assertIsInstance(exjob.tasks[Telnumber('0123325456')], Task)
+
+
def testCreateFax(self):
- job = createJob([],Fax('header','fax',[]),[])
- pass
+ with self.session() as session:
+ u = User(name='test',apikey='abcdef123456789')
+ session.add(u)
+ job = createJob(u,[Telnumber('0123325456')],Fax('header','fax',[]),[])
+
+ self.assertEqual(taskPool.pool.q.qsize(),1)
def testCreateMail(self):
- job = createJob([],Mail('sub','body','t@t.de'),[])
+ with self.session() as session:
+ u = User(name='test',apikey='abcdef123456789')
+ session.add(u)
+ job = createJob(u,[],Mail('sub','body','t@t.de'),[])
if __name__ == '__main__':