asynchronous refactoring
- don't execute celery tasks directly - introduce optional parameters to fileserver tasks to allow chaining - handle user/group/key create and delete tasks in new osusers.signals class - adapt unit tests - change TaskResults model to store the task signatures - generalize the local settings' logging configuration
This commit is contained in:
parent
bcfea10e6f
commit
d5bba7a22d
12 changed files with 290 additions and 170 deletions
|
@ -13,24 +13,30 @@ TEST_TASK_RESULT = '4ll y0ur b453 4r3 b3l0ng t0 u5'
|
|||
class TaskResultTest(TestCase):
|
||||
@patch('taskresults.models.app')
|
||||
def test_update_taskstatus_unfinished(self, app):
|
||||
mock = MagicMock(id=TEST_TASK_UUID, task_name=TEST_TASK_NAME)
|
||||
mock.ready.return_value = False
|
||||
tr = TaskResult.objects.create_task_result(mock, TEST_TASK_NAME)
|
||||
resultmock = MagicMock(task_id=TEST_TASK_UUID)
|
||||
resultmock.ready.return_value = False
|
||||
mock = MagicMock()
|
||||
mock.apply_async.return_value = resultmock
|
||||
tr = TaskResult.objects.create_task_result(TEST_TASK_NAME, mock)
|
||||
self.assertFalse(tr.finished)
|
||||
mymock = app.AsyncResult(TEST_TASK_UUID)
|
||||
mymock.state = 'SUCCESS'
|
||||
mymock.get.return_value = TEST_RESULT
|
||||
tr.fetch_result()
|
||||
mymock.get.assert_called_with(no_ack=True, timeout=1)
|
||||
mymock.get.assert_called_with()
|
||||
self.assertTrue(tr.finished)
|
||||
|
||||
@patch('taskresults.models.app')
|
||||
def test_update_taskstatus_finished(self, app):
|
||||
mock = MagicMock(id=TEST_TASK_UUID, task_name=TEST_TASK_NAME)
|
||||
mock.ready.return_value = True
|
||||
resultmock = MagicMock(task_id=TEST_TASK_UUID)
|
||||
resultmock.ready.return_value = True
|
||||
resultmock.state = 'SUCCESS'
|
||||
resultmock.result = TEST_RESULT
|
||||
mock = MagicMock()
|
||||
mock.apply_async.return_value = resultmock
|
||||
mock.state = 'SUCCESS'
|
||||
mock.result = TEST_RESULT
|
||||
tr = TaskResult.objects.create_task_result(mock, TEST_TASK_NAME)
|
||||
tr = TaskResult.objects.create_task_result(TEST_TASK_NAME, mock)
|
||||
tr.fetch_result()
|
||||
self.assertTrue(tr.finished)
|
||||
mymock = app.AsyncResult(TEST_TASK_UUID)
|
||||
|
@ -47,8 +53,10 @@ TEST_RESULT.ready.return_value = False
|
|||
|
||||
class TaskResultManagerTest(TestCase):
|
||||
def test_create_task_result(self):
|
||||
mock = MagicMock(id=TEST_TASK_UUID)
|
||||
tr = TaskResult.objects.create_task_result(mock, TEST_TASK_NAME)
|
||||
resultmock = MagicMock(task_id=TEST_TASK_UUID)
|
||||
mock = MagicMock()
|
||||
mock.apply_async.return_value = resultmock
|
||||
tr = TaskResult.objects.create_task_result(TEST_TASK_NAME, mock)
|
||||
self.assertIsInstance(tr, TaskResult)
|
||||
self.assertEqual(tr.task_id, TEST_TASK_UUID)
|
||||
self.assertEqual(tr.task_name, TEST_TASK_NAME)
|
||||
self.assertEqual(tr.creator, TEST_TASK_NAME)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue