Allard Hoeve %!s(int64=10) %!d(string=hai) anos
pai
achega
3d88ede276
Modificáronse 1 ficheiros con 13 adicións e 2 borrados
  1. 13 2
      celery/tests/backends/test_amqp.py

+ 13 - 2
celery/tests/backends/test_amqp.py

@@ -13,6 +13,7 @@ from celery import states
 from celery.backends.amqp import AMQPBackend
 from celery.exceptions import TimeoutError
 from celery.five import Empty, Queue, range
+from celery.result import AsyncResult
 from celery.utils import uuid
 
 from celery.tests.case import (
@@ -246,10 +247,20 @@ class test_AMQPBackend(AppCase):
         with self.assertRaises(TimeoutError):
             b.wait_for(tid, timeout=0.01, cache=False)
 
-    def test_drain_events_remaining_timeouts(self):
+    def test_drain_events_decodes_exceptions_in_meta(self):
+        tid = uuid()
+        b = self.create_backend(serializer="json")
+        b.store_result(tid, RuntimeError("aap"), states.FAILURE)
+        result = AsyncResult(tid, backend=b)
 
-        class Connection(object):
+        with self.assertRaises(Exception) as cm:
+            result.get()
 
+        self.assertEqual(cm.exception.__class__.__name__, "RuntimeError")
+        self.assertEqual(str(cm.exception), "aap")
+
+    def test_drain_events_remaining_timeouts(self):
+        class Connection(object):
             def drain_events(self, timeout=None):
                 pass