def test_forget(self): subs = [MockAsyncResultSuccess(uuid()), MockAsyncResultSuccess(uuid())] ts = TaskSetResult(uuid(), subs) ts.forget() for sub in subs: self.assertTrue(sub.forgotten)
def test_iter_native(self): backend = SimpleBackend() subtasks = [AsyncResult(uuid(), backend=backend) for i in range(10)] ts = TaskSetResult(uuid(), subtasks) backend.ids = [subtask.task_id for subtask in subtasks] self.assertEqual(len(list(ts.iter_native())), 10)
def test_iterate_yields(self): ar = MockAsyncResultSuccess(gen_unique_id()) ar2 = MockAsyncResultSuccess(gen_unique_id()) ts = TaskSetResult(gen_unique_id(), [ar, ar2]) it = iter(ts) self.assertEqual(it.next(), 42) self.assertEqual(it.next(), 42)
def test_getitem(self): subs = [ MockAsyncResultSuccess(gen_unique_id()), MockAsyncResultSuccess(gen_unique_id()) ] ts = TaskSetResult(gen_unique_id(), subs) self.assertIs(ts[0], subs[0])
def test_iterate_eager(self): ar1 = EagerResult(gen_unique_id(), 42, states.SUCCESS) ar2 = EagerResult(gen_unique_id(), 42, states.SUCCESS) ts = TaskSetResult(gen_unique_id(), [ar1, ar2]) it = iter(ts) self.assertEqual(it.next(), 42) self.assertEqual(it.next(), 42)
def test_join_native(self): backend = SimpleBackend() subtasks = [AsyncResult(uuid(), backend=backend) for i in range(10)] ts = TaskSetResult(uuid(), subtasks) backend.ids = [subtask.id for subtask in subtasks] res = ts.join_native() self.assertEqual(res, range(10))
def setUp(self): self.size = 11 subtasks = make_mock_taskset(10) failed = mock_task("ts11", states.FAILURE, KeyError("Baz")) save_result(failed) failed_res = AsyncResult(failed["id"]) self.ts = TaskSetResult(gen_unique_id(), subtasks + [failed_res])
def test_join_timeout(self): ar = MockAsyncResultSuccess(uuid()) ar2 = MockAsyncResultSuccess(uuid()) ar3 = AsyncResult(uuid()) ts = TaskSetResult(uuid(), [ar, ar2, ar3]) with self.assertRaises(TimeoutError): ts.join(timeout=0.0000001)
def apply(self): """Applies the taskset locally.""" taskset_id = gen_unique_id() # This will be filled with EagerResults. return TaskSetResult(taskset_id, [task.apply(taskset_id=taskset_id) for task in self.tasks])
def test_save_restore_delete_taskset(self): tid = uuid() tsr = TaskSetResult(tid, [AsyncResult(uuid()) for _ in range(10)]) self.b.save_taskset(tid, tsr) stored = self.b.restore_taskset(tid) print(stored) self.assertEqual(self.b.restore_taskset(tid), tsr) self.b.delete_taskset(tid) self.assertIsNone(self.b.restore_taskset(tid))
def test_save_restore(self): subs = [MockAsyncResultSuccess(uuid()), MockAsyncResultSuccess(uuid())] ts = TaskSetResult(uuid(), subs) ts.save() with self.assertRaises(AttributeError): ts.save(backend=object()) self.assertEqual( TaskSetResult.restore(ts.taskset_id).subtasks, ts.subtasks) ts.delete() self.assertIsNone(TaskSetResult.restore(ts.taskset_id)) with self.assertRaises(AttributeError): TaskSetResult.restore(ts.taskset_id, backend=object())
def test_save_restore(self): subs = [ MockAsyncResultSuccess(gen_unique_id()), MockAsyncResultSuccess(gen_unique_id()) ] ts = TaskSetResult(gen_unique_id(), subs) ts.save() self.assertRaises(AttributeError, ts.save, backend=object()) self.assertEqual( TaskSetResult.restore(ts.taskset_id).subtasks, ts.subtasks) self.assertRaises(AttributeError, TaskSetResult.restore, ts.taskset_id, backend=object())
def apply_async(self, connection=None, connect_timeout=conf.BROKER_CONNECTION_TIMEOUT): """Run all tasks in the taskset. Returns a :class:`celery.result.TaskSetResult` instance. Example >>> ts = TaskSet(tasks=( ... RefreshFeedTask.subtask(["http://foo.com/rss"]), ... RefreshFeedTask.subtask(["http://bar.com/rss"]), ... )) >>> result = ts.apply_async() >>> result.taskset_id "d2c9b261-8eff-4bfb-8459-1e1b72063514" >>> result.subtask_ids ["b4996460-d959-49c8-aeb9-39c530dcde25", "598d2d18-ab86-45ca-8b4f-0779f5d6a3cb"] >>> result.waiting() True >>> time.sleep(10) >>> result.ready() True >>> result.successful() True >>> result.failed() False >>> result.join() [True, True] """ if conf.ALWAYS_EAGER: return self.apply() taskset_id = gen_unique_id() publisher = TaskPublisher(connection=connection) try: results = [ task.apply_async(taskset_id=taskset_id, publisher=publisher) for task in self.tasks ] finally: publisher.close() return TaskSetResult(taskset_id, results)
def test_compat_subtasks_kwarg(self): x = TaskSetResult(uuid(), subtasks=[1, 2, 3]) self.assertEqual(x.results, [1, 2, 3])
def setup(self): self.size = 10 self.ts = TaskSetResult(uuid(), make_mock_group(self.app, self.size))
def TaskSetResult(self, taskset_id, results, **kwargs): """Create :class:`celery.result.TaskSetResult` instance.""" from celery.result import TaskSetResult return TaskSetResult(taskset_id, results, app=self)
def setUp(self): self.ts = TaskSetResult( gen_unique_id(), [AsyncResult(gen_unique_id()), AsyncResult(gen_unique_id())])
def test_join_timeout(self): ar = MockAsyncResultSuccess(gen_unique_id()) ar2 = MockAsyncResultSuccess(gen_unique_id()) ar3 = AsyncResult(gen_unique_id()) ts = TaskSetResult(gen_unique_id(), [ar, ar2, ar3]) self.assertRaises(TimeoutError, ts.join, timeout=0.0000001)
def test_TaskSetResult(self): x = TaskSetResult(uuid(), [AsyncResult(uuid()) for _ in range(10)]) self.assertEqual(x, from_serializable(x.serializable())) self.assertEqual(x, from_serializable(x))
def setup(self): self.size = 10 self.ts = TaskSetResult(uuid(), make_mock_taskset(self.size))
def test_iterate_raises(self): ar = MockAsyncResultFailure(uuid()) ts = TaskSetResult(uuid(), [ar]) it = iter(ts) with self.assertRaises(KeyError): it.next()
def test_iterate_raises(self): ar = MockAsyncResultFailure(gen_unique_id()) ts = TaskSetResult(gen_unique_id(), [ar]) it = iter(ts) self.assertRaises(KeyError, it.next)
def setUp(self): self.size = 10 self.ts = TaskSetResult(gen_unique_id(), make_mock_taskset(self.size))
def test_revoke_from_resultset(self): from celery.result import TaskSetResult, AsyncResult r = TaskSetResult(gen_unique_id(), map(AsyncResult, [gen_unique_id() for i in range(10)])) r.revoke() self.assertIn("revoke", MockBroadcastPublisher.sent)
def setup(self): self.ts = TaskSetResult(uuid(), [ AsyncResult(uuid()), AsyncResult(uuid())])