diff -r 65117fd28400 -r 75d0eaaa871d tests/job.py --- 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__':