def test_ready(self): task = Task(uuid="abcdefg", name="tasks.add") task.on_received(timestamp=time()) self.assertFalse(task.ready) task.on_succeeded(timestamp=time()) self.assertTrue(task.ready)
def test_ready(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('received', time(), time()) self.assertFalse(task.ready) task.event('succeeded', time(), time()) self.assertTrue(task.ready)
def test_listener_set_task_event(task_state_type, bool1, listener): with mock.patch.object(listener, '_derive_task_result') as mock_dtr: mock_dtr.return_value = 1, 2 listener.memory.tasks.get.return_value = Task( 'uuid', state='pre_state') if bool1 else None task = Task('uuid', state=task_state_type) listener.memory.event.return_value = (task, ''), '' # noinspection PyProtectedMember gen = listener._set_task_event(dict(uuid='uuid')) assert task == next(gen) listener.memory.event.assert_called_once_with(dict(uuid='uuid')) if task_state_type == SUCCESS: mock_dtr.assert_called_once_with(task) with mock.patch.object(listener, 'gen_task_states') as ts_through: ts_through.states_through.return_value = (x for x in 'abc') states = list(gen) if not bool1: if task_state_type == PENDING: assert states == [''] else: assert states == [task_state_type] else: ts_through.states_through.assert_called_once_with( 'pre_state', task_state_type) assert states == ['a', 'b', 'c']
def test_info(self): task = Task( uuid="abcdefg", name="tasks.add", args="(2, 2)", kwargs="{}", retries=2, result=42, eta=1, runtime=0.0001, expires=1, foo=None, exception=1, received=time() - 10, started=time() - 8, exchange="celery", routing_key="celery", succeeded=time(), ) self.assertEqual(sorted(list(task._info_fields)), sorted(task.info().keys())) self.assertEqual(sorted(list(task._info_fields + ("received",))), sorted(task.info(extra=("received",)))) self.assertEqual(sorted(["args", "kwargs"]), sorted(task.info(["args", "kwargs"]).keys())) self.assertFalse(list(task.info("foo")))
def test_info(self): task = Task(uuid='abcdefg', name='tasks.add', args='(2, 2)', kwargs='{}', retries=2, result=42, eta=1, runtime=0.0001, expires=1, parent_id='bdefc', root_id='dedfef', foo=None, exception=1, received=time() - 10, started=time() - 8, exchange='celery', routing_key='celery', succeeded=time()) assert sorted(list(task._info_fields)) == sorted(task.info().keys()) assert (sorted(list(task._info_fields + ('received',))) == sorted(task.info(extra=('received',)))) assert (sorted(['args', 'kwargs']) == sorted(task.info(['args', 'kwargs']).keys())) assert not list(task.info('foo'))
def test_ready(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('received', time(), time()) assert not task.ready task.event('succeeded', time(), time()) assert task.ready
def test_merge(self): task = Task() task.on_failed(timestamp=time()) task.on_started(timestamp=time()) task.on_received(timestamp=time(), name="tasks.add", args=(2, 2)) self.assertEqual(task.state, states.FAILURE) self.assertEqual(task.name, "tasks.add") self.assertTupleEqual(task.args, (2, 2)) task.on_retried(timestamp=time()) self.assertEqual(task.state, states.RETRY)
def test_merge(self): task = Task() task.event('failed', time(), time()) task.event('started', time(), time()) task.event('received', time(), time(), { 'name': 'tasks.add', 'args': (2, 2), }) assert task.state == states.FAILURE assert task.name == 'tasks.add' assert task.args == (2, 2) task.event('retried', time(), time()) assert task.state == states.RETRY
def test_merge(self): task = Task() task.event('failed', time(), time()) task.event('started', time(), time()) task.event('received', time(), time(), { 'name': 'tasks.add', 'args': (2, 2), }) self.assertEqual(task.state, states.FAILURE) self.assertEqual(task.name, 'tasks.add') self.assertTupleEqual(task.args, (2, 2)) task.event('retried', time(), time()) self.assertEqual(task.state, states.RETRY)
def test_merge(self): task = Task() task.on_failed(timestamp=time()) task.on_started(timestamp=time()) task.on_received(timestamp=time(), name='tasks.add', args=(2, 2)) self.assertEqual(task.state, states.FAILURE) self.assertEqual(task.name, 'tasks.add') self.assertTupleEqual(task.args, (2, 2)) task.on_retried(timestamp=time()) self.assertEqual(task.state, states.RETRY)
def test_merge(self): task = Task() task.event("failed", time(), time()) task.event("started", time(), time()) task.event("received", time(), time(), {"name": "tasks.add", "args": (2, 2)}) self.assertEqual(task.state, states.FAILURE) self.assertEqual(task.name, "tasks.add") self.assertTupleEqual(task.args, (2, 2)) task.event("retried", time(), time()) self.assertEqual(task.state, states.RETRY)
def test_merge(self): task = Task() task.event('failed', time(), time()) task.event('started', time(), time()) task.event('received', time(), time(), { 'name': 'tasks.add', 'args': (2, 2), }) self.assertEqual(task.state, states.FAILURE) self.assertEqual(task.name, 'tasks.add') self.assertTupleEqual(task.args, (2, 2)) task.event('retried', time(), time()) self.assertEqual(task.state, states.RETRY)
def test_merge(self): task = Task() task.event('failed', time(), time()) task.event('started', time(), time()) task.event('received', time(), time(), { 'name': 'tasks.add', 'args': (2, 2), }) assert task.state == states.FAILURE assert task.name == 'tasks.add' assert task.args == (2, 2) task.event('retried', time(), time()) assert task.state == states.RETRY
def test_equality(self): self.assertEqual(Task(uuid='foo').uuid, 'foo') self.assertEqual( Task(uuid='foo'), Task(uuid='foo'), ) self.assertNotEqual( Task(uuid='foo'), Task(uuid='bar'), ) self.assertEqual( hash(Task(uuid='foo')), hash(Task(uuid='foo')), ) self.assertNotEqual( hash(Task(uuid='foo')), hash(Task(uuid='bar')), )
def test_listener_process_task(bool1, bool2, task_state_type, listener): with mock.patch.object(listener.memory.tasks, 'get') as tg, \ mock.patch.object(listener.memory, 'event') as mev, \ mock.patch('clearly.event_core.event_listener.immutable_task') as it, \ mock.patch('clearly.event_core.event_listener.EventListener.compile_task_result') as ctr: tg.return_value = Task('uuid', state='pre_state') if bool1 else None task = Task('uuid', state=task_state_type, result='ok') mev.return_value = (task, ''), '' if bool2: ctr.side_effect = SyntaxError listener._process_task_event(dict(uuid='uuid')) if task_state_type == states.SUCCESS: ctr.assert_called_once_with(task) if bool2: listener._app.AsyncResult.assert_called_once_with('uuid') it.assert_called_once_with(task, task_state_type, 'pre_state' if bool1 else states.PENDING, not bool1)
def test_info(self): task = Task(uuid="abcdefg", name="tasks.add", args="(2, 2)", kwargs="{}", retries=2, result=42, eta=1, runtime=0.0001, expires=1, exception=1, received=time() - 10, started=time() - 8, succeeded=time()) self.assertItemsEqual(list(task._info_fields), task.info().keys()) self.assertItemsEqual(list(task._info_fields + ("received", )), task.info(extra=("received", ))) self.assertItemsEqual(["args", "kwargs"], task.info(["args", "kwargs"]).keys())
def test_ready(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('received', time(), time()) self.assertFalse(task.ready) task.event('succeeded', time(), time()) self.assertTrue(task.ready)
def test_info(self): task = Task(uuid='abcdefg', name='tasks.add', args='(2, 2)', kwargs='{}', retries=2, result=42, eta=1, runtime=0.0001, expires=1, parent_id='bdefc', root_id='dedfef', foo=None, exception=1, received=time() - 10, started=time() - 8, exchange='celery', routing_key='celery', succeeded=time()) assert sorted(list(task._info_fields)) == sorted(task.info().keys()) assert (sorted(list(task._info_fields + ('received', ))) == sorted( task.info(extra=('received', )))) assert (sorted(['args', 'kwargs' ]) == sorted(task.info(['args', 'kwargs']).keys())) assert not list(task.info('foo'))
def test_ready(self): task = Task(uuid="abcdefg", name="tasks.add") task.on_received(timestamp=time()) self.assertFalse(task.ready) task.on_succeeded(timestamp=time()) self.assertTrue(task.ready)
def test_ready(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('received', time(), time()) assert not task.ready task.event('succeeded', time(), time()) assert task.ready
def test_info(self): task = Task(uuid='abcdefg', name='tasks.add', args='(2, 2)', kwargs='{}', retries=2, result=42, eta=1, runtime=0.0001, expires=1, exception=1, received=time() - 10, started=time() - 8, succeeded=time()) self.assertEqual(sorted(list(task._info_fields)), sorted(task.info().keys())) self.assertEqual(sorted(list(task._info_fields + ('received', ))), sorted(task.info(extra=('received', )))) self.assertEqual(sorted(['args', 'kwargs']), sorted(task.info(['args', 'kwargs']).keys()))
def test_info(self): task = Task(uuid='abcdefg', name='tasks.add', args='(2, 2)', kwargs='{}', retries=2, result=42, eta=1, runtime=0.0001, expires=1, exception=1, received=time() - 10, started=time() - 8, succeeded=time()) self.assertEqual(sorted(list(task._info_fields)), sorted(task.info().keys())) self.assertEqual(sorted(list(task._info_fields + ('received', ))), sorted(task.info(extra=('received', )))) self.assertEqual(sorted(['args', 'kwargs']), sorted(task.info(['args', 'kwargs']).keys()))
def test_listener_derive_task_result(compile_res, use_rb, result_backend, expected, listener): with mock.patch('clearly.server.event_listener.EventListener.compile_task_result') as ctr, \ mock.patch.object(listener, 'use_result_backend', use_rb): ctr.side_effect = (compile_res, ) type(listener.app.AsyncResult()).result = PropertyMock( side_effect=(result_backend, )) task = Task(result='original') # noinspection PyProtectedMember result = listener._derive_task_result(task) assert result == expected
def test_info(self): task = Task(uuid="abcdefg", name="tasks.add", args="(2, 2)", kwargs="{}", retries=2, result=42, eta=1, runtime=0.0001, expires=1, exception=1, received=time() - 10, started=time() - 8, succeeded=time()) self.assertItemsEqual(list(task._info_fields), task.info().keys()) self.assertItemsEqual(list(task._info_fields + ("received", )), task.info(extra=("received", ))) self.assertItemsEqual(["args", "kwargs"], task.info(["args", "kwargs"]).keys())
def test_sent(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('sent', time(), time()) self.assertEqual(task.state, states.PENDING)
def create_task(self, worker, **kwargs): d = dict(uuid=gen_unique_id(), name='django_celery_monitor.test.task{0}'.format(next(_ids)), worker=worker) return Task(**dict(d, **kwargs))
traceback='traceback', result_meta='meta') WORKER = dict(hostname='hostname', pid=12000, sw_sys='sw_sys', sw_ident='sw_ident', sw_ver='sw_ver', loadavg=[1., 2., 3.], processed=789789, freq=5, heartbeats=[1]) @pytest.mark.parametrize('obj, to_type, data', [ (Task(**TASK), TaskMessage, TASK), (Worker(**WORKER), WorkerMessage, WORKER), ]) def test_server_obj_to_message_valid(obj, to_type, data): obj.timestamp, obj.state = 123.1, 'state' message = obj_to_message(obj, to_type) assert all(getattr(message, k) == v for k, v in data.items()) @pytest.mark.parametrize('obj, to_type', [ (1, TaskMessage), (1, WorkerMessage), ('wrong', TaskMessage), ('wrong', WorkerMessage), ({ 'wrong': True
def test_sent(self): task = Task(uuid="abcdefg", name="tasks.add") task.on_sent(timestamp=time()) self.assertEqual(task.state, states.PENDING)
def test_sent(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('sent', time(), time()) assert task.state == states.PENDING
def test_sent(self): task = Task(uuid="abcdefg", name="tasks.add") task.event("sent", time(), time()) self.assertEqual(task.state, states.PENDING)
T_DATA_PB = dict(name='name', routing_key='routing_key', uuid='uuid', retries=5, args='args', kwargs='kwargs', result='result', traceback='traceback', timestamp=123, state='state') T_DATA = copy.copy(T_DATA_PB) T_DATA.update(pre_state='other', created=False) # miss you py3.5 W_DATA_PB = dict(hostname='hostname', pid=12000, sw_sys='sw_sys', sw_ident='sw_ident', sw_ver='sw_ver', loadavg=[1, 2, 3], processed=789789, freq=5) W_DATA = copy.copy(W_DATA_PB) W_DATA.update(state='state', pre_state='other', created=False, alive=True, last_heartbeat=1) # miss you py3.5 @pytest.mark.parametrize('event, key, data', [ (TaskData(**T_DATA), 'task', T_DATA_PB), (Task(**T_DATA_PB), 'task', T_DATA_PB), (WorkerData(**W_DATA), 'worker', W_DATA_PB), (Worker(**W_DATA_PB), 'worker', W_DATA_PB), ]) def test_server_event_to_pb_valid(event, key, data, mocked_server): result_key, result_obj = mocked_server._event_to_pb(event) assert result_key == key assert all(getattr(result_obj, k) == v for k, v in data.items()) @pytest.mark.parametrize('event, key', [ (1, ValueError), ('wrong', ValueError), ({'wrong': True}, ValueError), ])
def test_sent(self): task = Task(uuid='abcdefg', name='tasks.add') task.on_sent(timestamp=time()) self.assertEqual(task.state, states.PENDING)
def create_task(worker, **kwargs): d = dict(uuid=gen_unique_id(), name='djcelery.unittest.task{0}'.format(next(_ids)), worker=worker) return Task(**dict(d, **kwargs))
def test_repr(self): self.assertTrue(repr(Task(uuid='xxx', name='tasks.add')))
def test_ready(self): task = Task(uuid="abcdefg", name="tasks.add") task.event("received", time(), time()) self.assertFalse(task.ready) task.event("succeeded", time(), time()) self.assertTrue(task.ready)
def test_reduce_direct(self): task = Task(uuid='uuid', name='tasks.add', args='(2, 2)') fun, args = task.__reduce__() task2 = fun(*args) assert task == task2
def test_accept_workers(): pattern = re.compile('pattern') with mock.patch('clearly.utils.data._accept') as mock_accept, \ mock.patch('clearly.utils.data.WORKER_OP') as mock_op: accept_worker(pattern, True, Task(**TASK)) mock_accept.assert_called_once_with(pattern, True, mock_op())
def test_sent(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('sent', time(), time()) assert task.state == states.PENDING
def create_task(worker, **kwargs): d = dict(uuid=gen_unique_id(), name='djcelery.unittest.task%s' % (_next_id(), ), worker=worker) return Task(**dict(d, **kwargs))
def test_equality(self): assert Task(uuid='foo').uuid == 'foo' assert Task(uuid='foo') == Task(uuid='foo') assert Task(uuid='foo') != Task(uuid='bar') assert hash(Task(uuid='foo')) == hash(Task(uuid='foo')) assert hash(Task(uuid='foo')) != hash(Task(uuid='bar'))
def test_repr(self): self.assertTrue(repr(Task(uuid="xxx", name="tasks.add")))
def test_reduce_direct(self): task = Task(uuid='uuid', name='tasks.add', args='(2, 2)') fun, args = task.__reduce__() task2 = fun(*args) assert task == task2
def test_sent(self): task = Task(uuid='abcdefg', name='tasks.add') task.event('sent', time(), time()) self.assertEqual(task.state, states.PENDING)
def test_repr(self): assert repr(Task(uuid='xxx', name='tasks.add'))
def get_task_by_id(events, task_id): from celery.events.state import Task return Task()