コード例 #1
0
 def test_active(self):
     r = Request(TaskMessage(self.mytask.name, 'do re mi'), app=self.app)
     worker_state.active_requests.add(r)
     try:
         self.assertTrue(self.panel.handle('dump_active'))
     finally:
         worker_state.active_requests.discard(r)
コード例 #2
0
 def test_from_message_nonexistant_task(self):
     m = TaskMessage(
         'cu.mytask.doesnotexist',
         args=[2], kwargs={'æØåveéðƒeæ': 'bar'},
     )
     with self.assertRaises(KeyError):
         Request(m, app=self.app)
コード例 #3
0
 def test_query_task(self):
     consumer = Consumer(self.app)
     consumer.controller = _WC(app=self.app)
     consumer.controller.consumer = consumer
     panel = self.create_panel(consumer=consumer)
     panel.app = self.app
     req1 = Request(
         TaskMessage(self.mytask.name, args=(2, 2)),
         app=self.app,
     )
     worker_state.task_reserved(req1)
     try:
         self.assertFalse(panel.handle('query_task', {'ids': {'1daa'}}))
         ret = panel.handle('query_task', {'ids': {req1.id}})
         self.assertIn(req1.id, ret)
         self.assertEqual(ret[req1.id][0], 'reserved')
         worker_state.active_requests.add(req1)
         try:
             ret = panel.handle('query_task', {'ids': {req1.id}})
             self.assertEqual(ret[req1.id][0], 'active')
         finally:
             worker_state.active_requests.clear()
         ret = panel.handle('query_task', {'ids': {req1.id}})
         self.assertEqual(ret[req1.id][0], 'reserved')
     finally:
         worker_state.reserved_requests.clear()
コード例 #4
0
 def test_fast_trace_task(self):
     from celery.app import trace
     setup_worker_optimizations(self.app)
     self.assertIs(trace.trace_task_ret, trace._fast_trace_task)
     tid = uuid()
     message = TaskMessage(self.mytask.name, tid, args=[4])
     assert len(message.payload) == 3
     try:
         self.mytask.__trace__ = build_tracer(
             self.mytask.name, self.mytask, self.app.loader, 'test',
             app=self.app,
         )
         failed, res, runtime = trace.trace_task_ret(
             self.mytask.name, tid, message.headers, message.body,
             message.content_type, message.content_encoding)
         self.assertFalse(failed)
         self.assertEqual(res, repr(4 ** 4))
         self.assertIsNotNone(runtime)
         self.assertIsInstance(runtime, numbers.Real)
     finally:
         reset_worker_optimizations()
         self.assertIs(trace.trace_task_ret, trace._trace_task_ret)
     delattr(self.mytask, '__trace__')
     failed, res, runtime = trace.trace_task_ret(
         self.mytask.name, tid, message.headers, message.body,
         message.content_type, message.content_encoding, app=self.app,
     )
     self.assertFalse(failed)
     self.assertEqual(res, repr(4 ** 4))
     self.assertIsNotNone(runtime)
     self.assertIsInstance(runtime, numbers.Real)
コード例 #5
0
 def test_from_message(self):
     us = 'æØåveéðƒeæ'
     tid = uuid()
     m = TaskMessage(self.mytask.name, tid, args=[2], kwargs={us: 'bar'})
     job = Request(m, app=self.app)
     self.assertIsInstance(job, Request)
     self.assertEqual(job.name, self.mytask.name)
     self.assertEqual(job.id, tid)
     self.assertIs(job.message, m)
コード例 #6
0
 def xRequest(self, name=None, id=None, args=None, kwargs=None,
              on_ack=None, on_reject=None, Request=Request, **head):
     args = [1] if args is None else args
     kwargs = {'f': 'x'} if kwargs is None else kwargs
     on_ack = on_ack or Mock(name='on_ack')
     on_reject = on_reject or Mock(name='on_reject')
     message = TaskMessage(
         name or self.mytask.name, id, args=args, kwargs=kwargs, **head
     )
     return Request(message, app=self.app,
                    on_ack=on_ack, on_reject=on_reject)
コード例 #7
0
 def test_dump_schedule(self):
     consumer = Consumer(self.app)
     panel = self.create_panel(consumer=consumer)
     self.assertFalse(panel.handle('dump_schedule'))
     r = Request(TaskMessage(self.mytask.name, 'CAFEBABE'), app=self.app)
     consumer.timer.schedule.enter_at(
         consumer.timer.Entry(lambda x: x, (r, )),
         datetime.now() + timedelta(seconds=10))
     consumer.timer.schedule.enter_at(
         consumer.timer.Entry(lambda x: x, (object(), )),
         datetime.now() + timedelta(seconds=10))
     self.assertTrue(panel.handle('dump_schedule'))
コード例 #8
0
 def test_trace_task_ret__no_trace(self):
     try:
         delattr(self.mytask, '__trace__')
     except AttributeError:
         pass
     tid = uuid()
     message = TaskMessage(self.mytask.name, tid, args=[4])
     _, R, _ = _trace_task_ret(
         self.mytask.name, tid, message.headers,
         message.body, message.content_type,
         message.content_encoding, app=self.app,
     )
     self.assertEqual(R, repr(4 ** 4))
コード例 #9
0
 def test_trace_task_ret(self):
     self.mytask.__trace__ = build_tracer(
         self.mytask.name, self.mytask, self.app.loader, 'test',
         app=self.app,
     )
     tid = uuid()
     message = TaskMessage(self.mytask.name, tid, args=[4])
     _, R, _ = _trace_task_ret(
         self.mytask.name, tid, message.headers,
         message.body, message.content_type,
         message.content_encoding, app=self.app,
     )
     self.assertEqual(R, repr(4 ** 4))
コード例 #10
0
ファイル: test_control.py プロジェクト: xn8x/celery
 def test_dump_reserved(self):
     consumer = Consumer(self.app)
     worker_state.reserved_requests.add(
         Request(TaskMessage(self.mytask.name, args=(2, 2)), app=self.app),
     )
     try:
         panel = self.create_panel(consumer=consumer)
         response = panel.handle('dump_reserved', {'safe': True})
         self.assertDictContainsSubset(
             {'name': self.mytask.name,
              'hostname': socket.gethostname()},
             response[0],
         )
         worker_state.reserved_requests.clear()
         self.assertFalse(panel.handle('dump_reserved'))
     finally:
         worker_state.reserved_requests.clear()
コード例 #11
0
ファイル: test_worker.py プロジェクト: zzkristy/celery
def create_task_message(channel, *args, **kwargs):
    m = TaskMessage(*args, **kwargs)
    m.channel = channel
    m.delivery_info = {'consumer_tag': 'mock'}
    return m
コード例 #12
0
 def test_from_message_missing_required_fields(self):
     m = TaskMessage(self.mytask.name)
     m.headers.clear()
     with self.assertRaises(KeyError):
         Request(m, app=self.app)
コード例 #13
0
 def test_from_message_empty_args(self):
     tid = uuid()
     m = TaskMessage(self.mytask.name, tid, args=[], kwargs={})
     job = Request(m, app=self.app)
     self.assertIsInstance(job, Request)
コード例 #14
0
 def test_from_message_invalid_kwargs(self):
     m = TaskMessage(self.mytask.name, args=(), kwargs='foo')
     req = Request(m, app=self.app)
     with self.assertRaises(InvalidTaskError):
         raise req.execute().exception
コード例 #15
0
ファイル: test_worker.py プロジェクト: cozezien/celery
def create_task_message(channel, *args, **kwargs):
    m = TaskMessage(*args, **kwargs)
    m.channel = channel
    m.delivery_info = {'consumer_tag': 'mock'}
    return m