Browse Source

Test case for acks_late with reject and requeue, when there is no redelivered information

Michael Permana 9 years ago
parent
commit
ebfe73a646
1 changed files with 15 additions and 1 deletions
  1. 15 1
      celery/tests/worker/test_request.py

+ 15 - 1
celery/tests/worker/test_request.py

@@ -325,7 +325,7 @@ class test_Request(AppCase):
             req_logger, req.connection_errors, True,
         )
 
-    def test_on_failure_WrokerLostError_rejects_with_requeue(self):
+    def test_on_failure_WorkerLostError_rejects_with_requeue(self):
         einfo = None
         try:
             raise WorkerLostError()
@@ -339,6 +339,20 @@ class test_Request(AppCase):
         req.on_reject.assert_called_with(
             req_logger, req.connection_errors, True)
 
+    def test_on_failure_WorkerLostError_redelivered_None(self):
+        einfo = None
+        try:
+            raise WorkerLostError()
+        except:
+            einfo = ExceptionInfo(internal=True)
+        req = self.get_request(self.add.s(2, 2))
+        req.task.acks_late = True
+        req.task.reject_on_worker_lost = True
+        req.delivery_info['redelivered'] = None
+        req.on_failure(einfo)
+        req.on_reject.assert_called_with(
+            req_logger, req.connection_errors, False)
+
     def test_tzlocal_is_cached(self):
         req = self.get_request(self.add.s(2, 2))
         req._tzlocal = 'foo'