def test_on_chord_part_return(self, setresult): from celery.registry import tasks from celery.task import subtask b = self.MockBackend() deps = Mock() deps.total = 10 setresult.restore.return_value = deps b.client.incr.return_value = 1 task = Mock() task.name = "foobarbaz" try: tasks["foobarbaz"] = task task.request.chord = subtask(task) b.on_chord_part_return(task) self.assertTrue(b.client.incr.call_count) b.client.incr.return_value = deps.total b.on_chord_part_return(task) deps.join.assert_called_with(propagate=False) deps.delete.assert_called_with() self.assertTrue(b.client.expire.call_count) finally: tasks.pop("foobarbaz")
def test_on_chord_part_return(self, setresult): tb = CacheBackend(backend="memory://") deps = Mock() deps.total = 2 setresult.restore.return_value = deps task = Mock() task.name = "foobarbaz" try: tasks["foobarbaz"] = task task.request.chord = subtask(task) task.request.taskset = "setid" tb.on_chord_apply(task.request.taskset, []) self.assertFalse(deps.join.called) tb.on_chord_part_return(task) self.assertFalse(deps.join.called) tb.on_chord_part_return(task) deps.join.assert_called_with(propagate=False) deps.delete.assert_called_with() finally: tasks.pop("foobarbaz")