From 9549b34d602a73300200560559d79049f73c3aa5 Mon Sep 17 00:00:00 2001 From: Vincent Driessen Date: Mon, 27 Aug 2012 09:47:09 +0200 Subject: [PATCH] Add convenience accessor properties for status. --- rq/job.py | 16 ++++++++++++++++ tests/test_worker.py | 18 ++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/rq/job.py b/rq/job.py index 5681e66..6df4b07 100644 --- a/rq/job.py +++ b/rq/job.py @@ -91,6 +91,22 @@ class Job(object): def status(self): 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 def func(self): func_name = self.func_name diff --git a/tests/test_worker.py b/tests/test_worker.py index dfe5261..9bab285 100644 --- a/tests/test_worker.py +++ b/tests/test_worker.py @@ -177,12 +177,26 @@ class TestWorker(RQTestCase): w = Worker([q]) 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) 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" job = q.enqueue(div_by_zero, args=(1,)) w.work(burst=True) 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)