def test_requeue_job_enqueue_into_origin(redis): """Requeue existing job puts it into jobs origin queue.""" yield from enqueue_job(redis=redis, **stubs.job) stored_id, stored_spec = yield from dequeue_job(redis, stubs.queue) yield from fail_job(redis, stubs.queue, stubs.job_id, stubs.job_exc_info) yield from requeue_job(redis, stored_id.decode()) assert stubs.job_id.encode() in (yield from jobs(redis, stubs.queue))
def test_requeue_job_removes_non_existing_job(redis): """Requeue job removes job id from the failed queue if job doesn't exists anymore. """ yield from redis.rpush(failed_queue_key(), stubs.job_id) yield from requeue_job(redis, stubs.job_id) assert not (yield from jobs(redis, 'failed'))
def test_requeue_job_clean_exc_info(redis): """Requeue existing job cleanup exception information.""" yield from enqueue_job(redis=redis, **stubs.job) stored_id, stored_spec = yield from dequeue_job(redis, stubs.queue) yield from fail_job(redis, stubs.queue, stubs.job_id, stubs.job_exc_info) yield from requeue_job(redis, stored_id.decode()) assert not (yield from redis.hget(job_key(stubs.job_id), 'exc_info'))
def test_requeue_job_set_status(redis): """Requeue existing job set corresponding job status.""" yield from enqueue_job(redis=redis, **stubs.job) stored_id, stored_spec = yield from dequeue_job(redis, stubs.queue) yield from fail_job(redis, stubs.queue, stubs.job_id, stubs.job_exc_info) yield from requeue_job(redis, stored_id.decode()) assert (yield from job_status(redis, stubs.job_id)) == JobStatus.QUEUED.encode()
def test_requeue_job_error_on_non_failed_job(redis): """Throw error if anyone tries to requeue non failed job.""" yield from enqueue_job(redis=redis, **stubs.job) with pytest.raises(InvalidOperationError): yield from requeue_job(redis, stubs.job_id)