Ask Solem 9 年之前
父節點
當前提交
ed3a265a87
共有 3 個文件被更改,包括 14 次插入8 次删除
  1. 3 2
      celery/result.py
  2. 1 1
      celery/tests/app/test_schedules.py
  3. 10 5
      celery/tests/tasks/test_result.py

+ 3 - 2
celery/result.py

@@ -287,7 +287,8 @@ class AsyncResult(ResultBase):
 
 
     def maybe_throw(self, propagate=True, callback=None):
     def maybe_throw(self, propagate=True, callback=None):
         cache = self._get_task_meta() if self._cache is None else self._cache
         cache = self._get_task_meta() if self._cache is None else self._cache
-        state, value, tb = cache['status'], cache['result'], cache.get('traceback')
+        state, value, tb = (
+            cache['status'], cache['result'], cache.get('traceback'))
         if state in states.PROPAGATE_STATES and propagate:
         if state in states.PROPAGATE_STATES and propagate:
             self.throw(value, self._to_remote_traceback(tb))
             self.throw(value, self._to_remote_traceback(tb))
         if callback is not None:
         if callback is not None:
@@ -296,7 +297,7 @@ class AsyncResult(ResultBase):
 
 
     def _to_remote_traceback(self, tb):
     def _to_remote_traceback(self, tb):
         if tb and tblib is not None and self.app.conf.task_remote_tracebacks:
         if tb and tblib is not None and self.app.conf.task_remote_tracebacks:
-            return tblib.Traceback.from_string(tbstring).as_traceback()
+            return tblib.Traceback.from_string(tb).as_traceback()
 
 
     def build_graph(self, intermediate=False, formatter=None):
     def build_graph(self, intermediate=False, formatter=None):
         graph = DependencyGraph(
         graph = DependencyGraph(

+ 1 - 1
celery/tests/app/test_schedules.py

@@ -438,7 +438,7 @@ class test_crontab_remaining_estimate(AppCase):
         # *** WARNING ***
         # *** WARNING ***
         # This test triggers an infinite loop in case of a regression
         # This test triggers an infinite loop in case of a regression
         with self.assertRaises(RuntimeError):
         with self.assertRaises(RuntimeError):
-            next = self.next_ocurrance(
+            self.next_ocurrance(
                 self.crontab(day_of_month=31, month_of_year=4),
                 self.crontab(day_of_month=31, month_of_year=4),
                 datetime(2010, 1, 28, 14, 30, 15),
                 datetime(2010, 1, 28, 14, 30, 15),
             )
             )

+ 10 - 5
celery/tests/tasks/test_result.py

@@ -34,7 +34,10 @@ Doesn't matter: really!\
 
 
 
 
 def mock_task(name, state, result, traceback=None):
 def mock_task(name, state, result, traceback=None):
-    return dict(id=uuid(), name=name, state=state, result=result, traceback=traceback)
+    return dict(
+        id=uuid(), name=name, state=state,
+        result=result, traceback=traceback,
+    )
 
 
 
 
 def save_result(app, task):
 def save_result(app, task):
@@ -69,8 +72,8 @@ class test_AsyncResult(AppCase):
         self.task5 = mock_task(
         self.task5 = mock_task(
             'task3', states.FAILURE, KeyError('blue'), PYTRACEBACK,
             'task3', states.FAILURE, KeyError('blue'), PYTRACEBACK,
         )
         )
-
-        for task in (self.task1, self.task2, self.task3, self.task4, self.task5):
+        for task in (self.task1, self.task2,
+                     self.task3, self.task4, self.task5):
             save_result(self.app, task)
             save_result(self.app, task)
 
 
         @self.app.task(shared=False)
         @self.app.task(shared=False)
@@ -224,7 +227,7 @@ class test_AsyncResult(AppCase):
         try:
         try:
             withtb.get()
             withtb.get()
         except KeyError:
         except KeyError:
-            tb  = traceback.format_exc()
+            tb = traceback.format_exc()
             self.assertNotIn('  File "foo.py", line 2, in foofunc', tb)
             self.assertNotIn('  File "foo.py", line 2, in foofunc', tb)
             self.assertNotIn('  File "bar.py", line 3, in barfunc', tb)
             self.assertNotIn('  File "bar.py", line 3, in barfunc', tb)
             self.assertIn('KeyError:', tb)
             self.assertIn('KeyError:', tb)
@@ -234,12 +237,14 @@ class test_AsyncResult(AppCase):
 
 
     @skip.unless_module('tblib')
     @skip.unless_module('tblib')
     def test_raising_remote_tracebacks(self):
     def test_raising_remote_tracebacks(self):
+        withtb = self.app.AsyncResult(self.task5['id'])
+
         old, self.app.conf.remote_tracebacks = (
         old, self.app.conf.remote_tracebacks = (
             self.app.conf.remote_tracebacks, True)
             self.app.conf.remote_tracebacks, True)
         try:
         try:
             withtb.get()
             withtb.get()
         except KeyError:
         except KeyError:
-            tb  = traceback.format_exc()
+            tb = traceback.format_exc()
             self.assertIn('  File "foo.py", line 2, in foofunc', tb)
             self.assertIn('  File "foo.py", line 2, in foofunc', tb)
             self.assertIn('  File "bar.py", line 3, in barfunc', tb)
             self.assertIn('  File "bar.py", line 3, in barfunc', tb)
             self.assertIn('KeyError:', tb)
             self.assertIn('KeyError:', tb)