def test_store_result(self): b = AMQPBackend(self.app) tid = uuid() request = Context(args=(1, 2, 3), kwargs={'foo': 'bar'}, task_name='mytask', retries=2, hostname='celery@worker_1', delivery_info={'routing_key': 'celery'}) b.store_result(tid, {'fizz': 'buzz'}, states.SUCCESS, request=request) meta = b.get_task_meta(tid) assert meta == { 'args': [1, 2, 3], 'children': [], 'kwargs': {'foo': 'bar'}, 'name': 'mytask', 'queue': 'celery', 'result': {'fizz': 'buzz'}, 'retries': 2, 'status': 'SUCCESS', 'task_id': tid, 'traceback': None, 'worker': 'celery@worker_1', }
def test_store_result_retries(self): iterations = [0] stop_raising_at = [5] def publish(*args, **kwargs): if iterations[0] > stop_raising_at[0]: return iterations[0] += 1 raise KeyError('foo') backend = AMQPBackend(self.app) from celery.app.amqp import Producer prod, Producer.publish = Producer.publish, publish try: with self.assertRaises(KeyError): backend.retry_policy['max_retries'] = None backend.store_result('foo', 'bar', 'STARTED') with self.assertRaises(KeyError): backend.retry_policy['max_retries'] = 10 backend.store_result('foo', 'bar', 'STARTED') finally: Producer.publish = prod
def test_store_result_retries(self): iterations = [0] stop_raising_at = [5] def publish(*args, **kwargs): if iterations[0] > stop_raising_at[0]: return iterations[0] += 1 raise KeyError("foo") backend = AMQPBackend() from celery.app.amqp import TaskProducer prod, TaskProducer.publish = TaskProducer.publish, publish try: with self.assertRaises(KeyError): backend.retry_policy["max_retries"] = None backend.store_result("foo", "bar", "STARTED") with self.assertRaises(KeyError): backend.retry_policy["max_retries"] = 10 backend.store_result("foo", "bar", "STARTED") finally: TaskProducer.publish = prod