Browse Source

Canvas: Fixes repr for immutable tasks

Ask Solem 9 years ago
parent
commit
7e82a32834
2 changed files with 5 additions and 5 deletions
  1. 4 4
      celery/canvas.py
  2. 1 1
      celery/tests/tasks/test_canvas.py

+ 4 - 4
celery/canvas.py

@@ -193,8 +193,8 @@ class Signature(dict):
         args, kwargs, options = self._merge(args, kwargs, options)
         return self.type.apply(args, kwargs, **options)
 
-    def _merge(self, args=(), kwargs={}, options={}):
-        if self.immutable:
+    def _merge(self, args=(), kwargs={}, options={}, force=False):
+        if self.immutable and not force:
             return (self.args, self.kwargs,
                     dict(self.options, **options) if options else self.options)
         return (tuple(args) + tuple(self.args) if args else self.args,
@@ -323,7 +323,7 @@ class Signature(dict):
         return dict(self)
 
     def reprcall(self, *args, **kwargs):
-        args, kwargs, _ = self._merge(args, kwargs, {})
+        args, kwargs, _ = self._merge(args, kwargs, {}, force=True)
         return reprcall(self['task'], args, kwargs)
 
     def election(self):
@@ -840,7 +840,7 @@ class group(Signature):
         return iter(self.tasks)
 
     def __repr__(self):
-        return repr(self.tasks)
+        return 'group({0.tasks!r})'.format(self)
 
     @property
     def app(self):

+ 1 - 1
celery/tests/tasks/test_canvas.py

@@ -476,7 +476,7 @@ class test_group(CanvasCase):
 
     def test_repr(self):
         x = group([self.add.s(2, 2), self.add.s(4, 4)])
-        self.assertEqual(repr(x), repr(x.tasks))
+        self.assertTrue(repr(x))
 
     def test_reverse(self):
         x = group([self.add.s(2, 2), self.add.s(4, 4)])