def test_receieve_message_not_registered(self): l = CarrotListener(self.ready_queue, self.eta_scheduler, self.logger) backend = MockBackend() m = create_message(backend, task="x.X.31x", args=[2, 4, 8], kwargs={}) self.assertFalse(l.receive_message(m.decode(), m)) self.assertRaises(Empty, self.ready_queue.get_nowait) self.assertTrue(self.eta_scheduler.empty())
def test_receieve_message(self): l = CarrotListener(self.ready_queue, self.eta_scheduler, self.logger) backend = MockBackend() m = create_message(backend, task=foo_task.name, args=[2, 4, 8], kwargs={}) l.receive_message(m.decode(), m) in_bucket = self.ready_queue.get_nowait() self.assertTrue(isinstance(in_bucket, TaskWrapper)) self.assertEquals(in_bucket.task_name, foo_task.name) self.assertEquals(in_bucket.execute(), 2 * 4 * 8) self.assertTrue(self.eta_scheduler.empty())
def test_receieve_message_eta(self): l = CarrotListener(self.ready_queue, self.eta_scheduler, self.logger) backend = MockBackend() m = create_message(backend, task=foo_task.name, args=[2, 4, 8], kwargs={}, eta=(datetime.now() + timedelta(days=1)).isoformat()) l.receive_message(m.decode(), m) in_hold = self.eta_scheduler.queue[0] self.assertEquals(len(in_hold), 4) eta, priority, task, on_accept = in_hold self.assertTrue(isinstance(task, TaskWrapper)) self.assertTrue(callable(on_accept)) self.assertEquals(task.task_name, foo_task.name) self.assertEquals(task.execute(), 2 * 4 * 8) self.assertRaises(Empty, self.ready_queue.get_nowait)
def test_connection(self): l = CarrotListener(self.ready_queue, self.eta_scheduler, self.logger) c = l.reset_connection() self.assertTrue(isinstance(l.amqp_connection, BrokerConnection)) l.close_connection() self.assertTrue(l.amqp_connection is None) self.assertTrue(l.task_consumer is None) c = l.reset_connection() self.assertTrue(isinstance(l.amqp_connection, BrokerConnection)) l.stop() self.assertTrue(l.amqp_connection is None) self.assertTrue(l.task_consumer is None)
def test_revoke(self): ready_queue = Queue() l = CarrotListener(ready_queue, self.eta_scheduler, self.logger, send_events=False) backend = MockBackend() id = gen_unique_id() c = create_message(backend, control={"command": "revoke", "task_id": id}) t = create_message(backend, task=foo_task.name, args=[2, 4, 8], kwargs={}, id=id) l.event_dispatcher = MockEventDispatcher() l.receive_message(c.decode(), c) from celery.worker.revoke import revoked self.assertTrue(id in revoked) l.receive_message(t.decode(), t) self.assertTrue(ready_queue.empty())