Add convenience accessor properties for status.

This commit is contained in:
Vincent Driessen 2012-08-27 09:47:09 +02:00
parent 4224304291
commit 9549b34d60
2 changed files with 32 additions and 2 deletions

View File

@ -91,6 +91,22 @@ class Job(object):
def status(self): def status(self):
return self._status return self._status
@property
def is_finished(self):
return self.status == Status.FINISHED
@property
def is_queued(self):
return self.status == Status.QUEUED
@property
def is_failed(self):
return self.status == Status.FAILED
@property
def is_done(self):
return self._status is not None and not self.is_queued
@property @property
def func(self): def func(self):
func_name = self.func_name func_name = self.func_name

View File

@ -177,12 +177,26 @@ class TestWorker(RQTestCase):
w = Worker([q]) w = Worker([q])
job = q.enqueue(say_hello) job = q.enqueue(say_hello)
self.assertEqual(job.status, 'queued')
self.assertEqual(job.is_queued, True)
self.assertEqual(job.is_finished, False)
self.assertEqual(job.is_failed, False)
self.assertEqual(job.is_done, False)
w.work(burst=True) w.work(burst=True)
job = Job.fetch(job.id) job = Job.fetch(job.id)
self.assertEqual(job.status, Status.FINISHED) self.assertEqual(job.status, 'finished')
self.assertEqual(job.is_queued, False)
self.assertEqual(job.is_finished, True)
self.assertEqual(job.is_failed, False)
self.assertEqual(job.is_done, True)
# Failed jobs should set status to "failed" # Failed jobs should set status to "failed"
job = q.enqueue(div_by_zero, args=(1,)) job = q.enqueue(div_by_zero, args=(1,))
w.work(burst=True) w.work(burst=True)
job = Job.fetch(job.id) job = Job.fetch(job.id)
self.assertEqual(job.status, Status.FAILED) self.assertEqual(job.status, 'failed')
self.assertEqual(job.is_queued, False)
self.assertEqual(job.is_finished, False)
self.assertEqual(job.is_failed, True)
self.assertEqual(job.is_done, True)