Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_free_task_with_invalid_initial_state(self):
task = Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
method='DummyTask',
state=TASK_STATES['OPEN'],
)
with self.assertRaises(Exception):
task.free_task()
def test_cancel_task_fails_to_cancel_another_worker_task(self):
w = Worker.objects.create(
worker_key='other-worker',
name='other-worker',
)
t = Task.objects.create(
worker=w,
arch=self._arch,
channel=self._channel,
owner=self._user,
state=TASK_STATES['OPEN'],
)
req = _make_request(self._worker)
with self.assertRaises(Task.DoesNotExist):
worker.cancel_task(req, t.id)
t = Task.objects.get(id=t.id)
self.assertEqual(t.state, TASK_STATES['OPEN'])
def test_take_task_set_load_and_ready(self):
t = Task.objects.create(
worker=self._worker.worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
method='DummyHeavyTask',
state=TASK_STATES['FREE'],
)
self.assertEqual(t.state, TASK_STATES['FREE'])
tm = TaskManager(conf={'worker': self._worker})
task_info = t.export(False)
with patch('kobo.worker.taskmanager.os', fork=Mock(return_value=9999)) as os_mock:
tm.take_task(task_info)
os_mock.fork.assert_called_once()
def test_free_task(self):
task = Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
method='DummyTask',
state=TASK_STATES['ASSIGNED'],
)
task.free_task()
task = Task.objects.get(id=task.id)
self.assertEquals(task.state, TASK_STATES['FREE'])
def test_get_awaited_tasks_if_empty_task_list(self):
t_parent = Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
state=TASK_STATES['FREE'],
)
Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
state=TASK_STATES['FREE'],
awaited=True,
parent=t_parent,
)
def test_get_next_task_dont_run_tasks_if_not_ready(self):
t = Task.objects.create(
worker=self._worker.worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
method='DummyForegroundTask',
state=TASK_STATES['FREE'],
)
self.assertEqual(t.state, TASK_STATES['FREE'])
tm = TaskManager(conf={'worker': self._worker})
tm.worker_info['ready'] = False
tm.get_next_task()
# reload task info
def test_get_next_task_runs_assigened_awaited_task_if_locked(self):
t1 = Task.objects.create(
worker=self._worker.worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
method='DummyForegroundTask',
state=TASK_STATES['OPEN'],
)
t2 = Task.objects.create(
worker=self._worker.worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
method='DummyForegroundTask',
state=TASK_STATES['ASSIGNED'],
awaited=True,
parent=t1,
)
t3 = Task.objects.create(
worker=self._worker.worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
method='DummyForegroundTask',
def test_timeout_tasks_timeout_tasks_recursively(self):
t1 = Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
state=TASK_STATES['OPEN'],
)
t2 = Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
state=TASK_STATES['OPEN'],
parent=t1,
)
def test_check_wait_subtasks_finished(self):
parent = Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
state=TASK_STATES['OPEN'],
)
Task.objects.create(
worker=self._worker,
arch=self._arch,
channel=self._channel,
owner=self._user,
state=TASK_STATES['CLOSED'],
parent=parent,
)