def test_regular_task(self): T1 = self.createTaskCls("T1", "c.unittest.t.t1") self.assertTrue(isinstance(T1(), T1)) self.assertTrue(T1().run()) self.assertTrue(callable(T1()), "Task class is callable()") self.assertTrue(T1()(), "Task class runs run() when called") # task name generated out of class module + name. T2 = self.createTaskCls("T2") self.assertEquals(T2().name, "celery.tests.test_task.T2") registry.tasks.register(T1) t1 = T1() consumer = t1.get_consumer() self.assertRaises(NotImplementedError, consumer.receive, "foo", "foo") consumer.discard_all() self.assertTrue(consumer.fetch() is None) # Without arguments. presult = t1.delay() self.assertNextTaskDataEquals(consumer, presult, t1.name) # With arguments. presult2 = task.delay_task(t1.name, name="George Constanza") self.assertNextTaskDataEquals(consumer, presult2, t1.name, name="George Constanza") # With eta. presult2 = task.apply_async(t1, kwargs=dict(name="George Constanza"), eta=datetime.now() + timedelta(days=1)) self.assertNextTaskDataEquals(consumer, presult2, t1.name, name="George Constanza", test_eta=True) # With countdown. presult2 = task.apply_async(t1, kwargs=dict(name="George Constanza"), countdown=10) self.assertNextTaskDataEquals(consumer, presult2, t1.name, name="George Constanza", test_eta=True) self.assertRaises(registry.tasks.NotRegistered, task.delay_task, "some.task.that.should.never.exist.X.X.X.X.X") # Discarding all tasks. task.discard_all() tid3 = task.delay_task(t1.name) self.assertEquals(task.discard_all(), 1) self.assertTrue(consumer.fetch() is None) self.assertFalse(task.is_done(presult.task_id)) self.assertFalse(presult.is_done()) default_backend.mark_as_done(presult.task_id, result=None) self.assertTrue(task.is_done(presult.task_id)) self.assertTrue(presult.is_done()) publisher = t1.get_publisher() self.assertTrue(isinstance(publisher, messaging.TaskPublisher))
def test_regular_task(self): T1 = self.createTaskCls("T1", "c.unittest.t.t1") self.assertTrue(isinstance(T1(), T1)) self.assertTrue(T1().run()) self.assertTrue(callable(T1()), "Task class is callable()") self.assertTrue(T1()(), "Task class runs run() when called") # task without name raises NotImplementedError T2 = self.createTaskCls("T2") self.assertRaises(NotImplementedError, T2) registry.tasks.register(T1) t1 = T1() consumer = t1.get_consumer() self.assertRaises(NotImplementedError, consumer.receive, "foo", "foo") consumer.discard_all() self.assertTrue(consumer.fetch() is None) # Without arguments. presult = t1.delay() self.assertNextTaskDataEquals(consumer, presult, t1.name) # With arguments. presult2 = task.delay_task(t1.name, name="George Constanza") self.assertNextTaskDataEquals(consumer, presult2, t1.name, name="George Constanza") self.assertRaises(registry.tasks.NotRegistered, task.delay_task, "some.task.that.should.never.exist.X.X.X.X.X") # Discarding all tasks. task.discard_all() tid3 = task.delay_task(t1.name) self.assertEquals(task.discard_all(), 1) self.assertTrue(consumer.fetch() is None) self.assertFalse(task.is_done(presult.task_id)) self.assertFalse(presult.is_done()) default_backend.mark_as_done(presult.task_id, result=None) self.assertTrue(task.is_done(presult.task_id)) self.assertTrue(presult.is_done()) publisher = t1.get_publisher() self.assertTrue(isinstance(publisher, messaging.TaskPublisher))