def test_job_failure(self): self.resq.enqueue(ErrorObject) worker = Worker(['basic']) worker.process() name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic') assert not self.redis.get('resque:worker:%s' % worker) assert self.redis.get("resque:stat:failed") == str(1) assert self.redis.get("resque:stat:failed:%s" % name) == str(1)
def test_enqueue_from_string(self): self.resq.enqueue_from_string('tests.Basic','basic','test1') name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic') assert self.redis.llen("resque:queue:basic") == 1 job = Job.reserve('basic', self.resq) worker = Worker(['basic']) worker.process(job) assert not self.redis.get('resque:worker:%s' % worker) assert not self.redis.get("resque:stat:failed") assert not self.redis.get("resque:stat:failed:%s" % name)
def test_enqueue_from_string(self): self.resq.enqueue_from_string('tests.Basic', 'basic', 'test1') name = "%s:%s:%s" % (os.uname()[1], os.getpid(), 'basic') assert self.redis.llen("resque:queue:basic") == 1 job = Job.reserve('basic', self.resq) worker = Worker(['basic']) worker.process(job) assert not self.redis.get('resque:worker:%s' % worker) assert not self.redis.get("resque:stat:failed") assert not self.redis.get("resque:stat:failed:%s" % name)
def test_enqueue_from_string(self): self.resq.enqueue_from_string("tests.Basic", "basic", "test1") name = "%s:%s:%s" % (os.uname()[1], os.getpid(), "basic") assert self.redis.llen("resque:queue:basic") == 1 job = Job.reserve("basic", self.resq) worker = Worker(["basic"]) worker.process(job) assert not self.redis.get("resque:worker:%s" % worker) assert not self.redis.get("resque:stat:failed") assert not self.redis.get("resque:stat:failed:%s" % name)
def test_process(self): name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic') self.resq.enqueue(Basic,"test1") job = Job.reserve('basic', self.resq) worker = Worker(['basic']) worker.process(job) assert not self.redis.get('resque:worker:%s' % worker) assert not self.redis.get("resque:stat:failed") assert not self.redis.get("resque:stat:failed:%s" % name) self.resq.enqueue(Basic,"test1") worker.process() assert not self.redis.get('resque:worker:%s' % worker) assert not self.redis.get("resque:stat:failed") assert not self.redis.get("resque:stat:failed:%s" % name)
def test_retries_give_up_eventually(self): now = datetime.datetime.utcnow() self.set_utcnow(now) worker = Worker(['basic']) scheduler = Scheduler() # queue up a job that will fail for 60 seconds self.resq.enqueue(RetryOnExceptionJob, now + datetime.timedelta(seconds=60)) worker.process() assert worker.get_failed() == 0 # check it retries the first time self.set_utcnow(now + datetime.timedelta(seconds=5)) scheduler.handle_delayed_items() assert None == worker.process() assert worker.get_failed() == 0 # check it fails when we've been trying too long self.set_utcnow(now + datetime.timedelta(seconds=20)) scheduler.handle_delayed_items() assert None == worker.process() assert worker.get_failed() == 1
def test_retry_on_exception(self): now = datetime.datetime.utcnow() self.set_utcnow(now) worker = Worker(['basic']) scheduler = Scheduler() # queue up a job that will fail for 30 seconds self.resq.enqueue(RetryOnExceptionJob, now + datetime.timedelta(seconds=30)) worker.process() assert worker.get_failed() == 0 # check it retries the first time self.set_utcnow(now + datetime.timedelta(seconds=5)) scheduler.handle_delayed_items() assert None == worker.process() assert worker.get_failed() == 0 # check it runs fine when it's stopped crashing self.set_utcnow(now + datetime.timedelta(seconds=60)) scheduler.handle_delayed_items() assert True == worker.process() assert worker.get_failed() == 0
def test_retries_give_up_eventually(self): now = datetime.datetime.now() self.set_current_time(now) worker = Worker(['basic']) scheduler = Scheduler() # queue up a job that will fail for 60 seconds self.resq.enqueue(RetryOnExceptionJob, now + datetime.timedelta(seconds=60)) worker.process() assert worker.get_failed() == 0 # check it retries the first time self.set_current_time(now + datetime.timedelta(seconds=5)) scheduler.handle_delayed_items() assert None == worker.process() assert worker.get_failed() == 0 # check it fails when we've been trying too long self.set_current_time(now + datetime.timedelta(seconds=20)) scheduler.handle_delayed_items() assert None == worker.process() assert worker.get_failed() == 1
def test_retry_on_exception(self): now = datetime.datetime.now() self.set_current_time(now) worker = Worker(['basic']) scheduler = Scheduler() # queue up a job that will fail for 30 seconds self.resq.enqueue(RetryOnExceptionJob, now + datetime.timedelta(seconds=30)) worker.process() assert worker.get_failed() == 0 # check it retries the first time self.set_current_time(now + datetime.timedelta(seconds=5)) scheduler.handle_delayed_items() assert None == worker.process() assert worker.get_failed() == 0 # check it runs fine when it's stopped crashing self.set_current_time(now + datetime.timedelta(seconds=60)) scheduler.handle_delayed_items() assert True == worker.process() assert worker.get_failed() == 0