Skip to content

Commit

Permalink
Merge pull request #765 from jsurloppe/master
Browse files Browse the repository at this point in the history
Fix get job on failed queue
  • Loading branch information
selwin committed Dec 4, 2016
2 parents 2428370 + dc3bba9 commit f4e7783
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
2 changes: 1 addition & 1 deletion rq/queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def fetch_job(self, job_id):
except NoSuchJobError:
self.remove(job_id)
else:
if job.origin == self.name:
if job.origin == self.name or (job.is_failed and self == get_failed_queue(connection=self.connection)):
return job

def get_job_ids(self, offset=0, length=-1):
Expand Down
21 changes: 21 additions & 0 deletions tests/test_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,27 @@ def test_requeue_job(self):
self.assertEqual(get_failed_queue().count, 0)
self.assertEqual(Queue('fake').count, 1)

def test_get_job_on_failed_queue(self):
default_queue = Queue()
failed_queue = get_failed_queue()

job = default_queue.enqueue(div_by_zero, args=(1, 2, 3))

job_on_default_queue = default_queue.fetch_job(job.id)
job_on_failed_queue = failed_queue.fetch_job(job.id)

self.assertIsNotNone(job_on_default_queue)
self.assertIsNone(job_on_failed_queue)

job.set_status(JobStatus.FAILED)

job_on_default_queue = default_queue.fetch_job(job.id)
job_on_failed_queue = failed_queue.fetch_job(job.id)

self.assertIsNotNone(job_on_default_queue)
self.assertIsNotNone(job_on_failed_queue)
self.assertTrue(job_on_default_queue.is_failed)

def test_requeue_nonfailed_job_fails(self):
"""Requeueing non-failed jobs raises error."""
q = Queue()
Expand Down

0 comments on commit f4e7783

Please sign in to comment.