def test_attempt_delivery_suffix(self):
     task_func = self.mox.CreateMockAnything()
     self.celery.task(name='attempt_delivery_test').AndReturn(task_func)
     task_func.__call__(IgnoreArg())
     self.relay.attempt(self.env, 0)
     self.mox.ReplayAll()
     queue = CeleryQueue(self.celery, self.relay, 'test')
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery_suffix(self):
     task_func = self.mox.CreateMockAnything()
     self.celery.task(name='attempt_delivery_test').AndReturn(task_func)
     task_func.__call__(IgnoreArg())
     self.relay.attempt(self.env, 0)
     self.mox.ReplayAll()
     queue = CeleryQueue(self.celery, self.relay, 'test')
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery_permanentrelayerror_nullsender(self):
     task = self.mox.CreateMockAnything()
     self.relay.attempt(self.bounce, 0).AndRaise(PermanentRelayError('permanent', Reply('550', 'permanent error')))
     self.celery.task(IgnoreArg()).AndReturn(task)
     self.mox.ReplayAll()
     def return_bounce(envelope, reply):
         self.fail('Tried to generate a bounce to a NULL sender.')
     queue = CeleryQueue(self.celery, self.relay, bounce_factory=return_bounce)
     queue.attempt_delivery(self.bounce, 0)
 def test_attempt_delivery_permanentrelayerror_nullsender(self):
     task = self.mox.CreateMockAnything()
     self.relay.attempt(self.bounce, 0).AndRaise(PermanentRelayError('permanent', Reply('550', 'permanent error')))
     self.celery.task(IgnoreArg()).AndReturn(task)
     self.mox.ReplayAll()
     def return_bounce(envelope, reply):
         self.fail('Tried to generate a bounce to a NULL sender.')
     queue = CeleryQueue(self.celery, self.relay, bounce_factory=return_bounce)
     queue.attempt_delivery(self.bounce, 0)
 def test_attempt_delivery_permanentrelayerror(self):
     task = self.mox.CreateMockAnything()
     subtask = self.mox.CreateMockAnything()
     result = self.mox.CreateMockAnything()
     result.id = '12345'
     self.relay.attempt(self.env, 0).AndRaise(PermanentRelayError('permanent', Reply('550', 'permanent error')))
     self.celery.task(IgnoreArg()).AndReturn(task)
     task.s(self.bounce, 0).AndReturn(subtask)
     subtask.apply_async().AndReturn(result)
     self.mox.ReplayAll()
     def return_bounce(envelope, reply):
         self.assertEqual(self.env, envelope)
         return self.bounce
     queue = CeleryQueue(self.celery, self.relay, bounce_factory=return_bounce)
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery_permanentrelayerror(self):
     task = self.mox.CreateMockAnything()
     subtask = self.mox.CreateMockAnything()
     result = self.mox.CreateMockAnything()
     result.id = '12345'
     self.relay.attempt(self.env, 0).AndRaise(PermanentRelayError('permanent', Reply('550', 'permanent error')))
     self.celery.task(IgnoreArg()).AndReturn(task)
     task.s(self.bounce, 0).AndReturn(subtask)
     subtask.apply_async().AndReturn(result)
     self.mox.ReplayAll()
     def return_bounce(envelope, reply):
         self.assertEqual(self.env, envelope)
         return self.bounce
     queue = CeleryQueue(self.celery, self.relay, bounce_factory=return_bounce)
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery_transientrelayerror(self):
     task = self.mox.CreateMockAnything()
     subtask = self.mox.CreateMockAnything()
     result = self.mox.CreateMockAnything()
     result.id = '12345'
     self.relay.attempt(self.env, 0).AndRaise(TransientRelayError('transient', Reply('450', 'transient error')))
     self.celery.task(IgnoreArg()).AndReturn(task)
     task.s(self.env, 1).AndReturn(subtask)
     subtask.set(countdown=60)
     subtask.apply_async().AndReturn(result)
     self.mox.ReplayAll()
     def backoff(envelope, attempts):
         self.assertEqual(self.env, envelope)
         self.assertEqual(1, attempts)
         return 60
     queue = CeleryQueue(self.celery, self.relay, backoff=backoff)
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery_transientrelayerror(self):
     task = self.mox.CreateMockAnything()
     subtask = self.mox.CreateMockAnything()
     result = self.mox.CreateMockAnything()
     result.id = '12345'
     self.relay.attempt(self.env, 0).AndRaise(TransientRelayError('transient', Reply('450', 'transient error')))
     self.celery.task(IgnoreArg()).AndReturn(task)
     task.s(self.env, 1).AndReturn(subtask)
     subtask.set(countdown=60)
     subtask.apply_async().AndReturn(result)
     self.mox.ReplayAll()
     def backoff(envelope, attempts):
         self.assertEqual(self.env, envelope)
         self.assertEqual(1, attempts)
         return 60
     queue = CeleryQueue(self.celery, self.relay, backoff=backoff)
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery_transientrelayerror_no_retry(self):
     task = self.mox.CreateMockAnything()
     subtask = self.mox.CreateMockAnything()
     result = self.mox.CreateMockAnything()
     result.id = '12345'
     self.relay._attempt(self.env, 0).AndRaise(TransientRelayError('transient', Reply('450', 'transient error')))
     self.celery.task(IgnoreArg()).AndReturn(task)
     task.s(self.bounce, 0).AndReturn(subtask)
     subtask.apply_async().AndReturn(result)
     self.mox.ReplayAll()
     def return_bounce(envelope, reply):
         self.assertEqual(self.env, envelope)
         return self.bounce
     def no_retry(envelope, attempts):
         self.assertEqual(self.env, envelope)
         self.assertEqual(1, attempts)
         return None
     queue = CeleryQueue(self.celery, self.relay, backoff=no_retry, bounce_factory=return_bounce)
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery_unhandlederror(self):
     task = self.mox.CreateMockAnything()
     subtask = self.mox.CreateMockAnything()
     result = self.mox.CreateMockAnything()
     result.id = '12345'
     self.relay.attempt(self.env, 0).AndRaise(Exception('unhandled error'))
     self.celery.task(IgnoreArg()).AndReturn(task)
     task.s(self.bounce, 0).AndReturn(subtask)
     subtask.apply_async().AndReturn(result)
     self.mox.ReplayAll()
     def return_bounce(envelope, reply):
         self.assertEqual(self.env, envelope)
         self.assertEqual('4.0.0 Unhandled delivery error: unhandled error (Too many retries)', reply.message)
         return self.bounce
     def no_retry(envelope, attempts):
         self.assertEqual(self.env, envelope)
         self.assertEqual(1, attempts)
         return None
     queue = CeleryQueue(self.celery, self.relay, backoff=no_retry, bounce_factory=return_bounce)
     with self.assertRaises(Exception) as e:
         queue.attempt_delivery(self.env, 0)
         self.assertEqual('unhandled error', str(e.exception))
 def test_attempt_delivery(self):
     self.celery.task(IgnoreArg())
     self.relay.attempt(self.env, 0)
     self.mox.ReplayAll()
     queue = CeleryQueue(self.celery, self.relay)
     queue.attempt_delivery(self.env, 0)
 def test_attempt_delivery(self):
     self.celery.task(IgnoreArg())
     self.relay.attempt(self.env, 0)
     self.mox.ReplayAll()
     queue = CeleryQueue(self.celery, self.relay)
     queue.attempt_delivery(self.env, 0)