Skip to content
Snippets Groups Projects
Commit 6661c62b authored by Bastien Abadie's avatar Bastien Abadie
Browse files

Merge branch 'task-prefixes' into 'master'

Remove prefixes for documents and ML tasks

See merge request !126
parents 7b0ea36a 9d4ea3ee
No related branches found
No related tags found
1 merge request!126Remove prefixes for documents and ML tasks
......@@ -25,11 +25,14 @@ class TaskSerializer(serializers.Serializer):
def get_name(self, obj):
name = obj._get_task_meta().get('task_name')
# Remove prefix
prefix = 'arkindex.dataimport.tasks.'
if name and name.startswith(prefix):
return name[len(prefix):]
if not name:
return name
# Remove prefixes
prefixes = ('arkindex.dataimport.tasks.', 'arkindex.documents.tasks.', 'arkindex_ml.tasks.')
for prefix in prefixes:
if name.startswith(prefix):
return name[len(prefix):]
return name
def get_messages(self, obj):
......@@ -44,7 +47,7 @@ class TaskSerializer(serializers.Serializer):
return 0.0
def get_parent_id(self, obj):
return obj.parent and obj.parent.id
return obj.parent and str(obj.parent.id)
class Meta:
fields = (
......
from unittest import TestCase
from unittest.mock import MagicMock
from celery import states
from arkindex.dataimport.serializers import TaskSerializer
import uuid
class TestTaskSerializer(TestCase):
def setUp(self):
self.task_mock = MagicMock()
self.task_mock.id = uuid.uuid4()
self.task_mock.state = states.SUCCESS
self.task_mock.parent.id = uuid.uuid4()
self.task_mock._get_task_meta.return_value = {
'task_name': 'task.name',
'messages': ['something'],
}
self.maxDiff = None
def test_base(self):
self.assertDictEqual(
TaskSerializer(self.task_mock).data,
{
'id': str(self.task_mock.id),
'name': 'task.name',
'state': states.SUCCESS,
'messages': ['something'],
'progress': 1.0,
'parent_id': str(self.task_mock.parent.id),
}
)
def test_progress(self):
self.task_mock.state = 'PROGRESS'
self.task_mock._get_task_meta.return_value = {
'task_name': 'task.name',
'messages': ['something'],
'result': {
'progress': 0.42,
},
}
self.assertDictEqual(
TaskSerializer(self.task_mock).data,
{
'id': str(self.task_mock.id),
'name': 'task.name',
'state': 'PROGRESS',
'messages': ['something'],
'progress': 0.42,
'parent_id': str(self.task_mock.parent.id),
}
)
def test_progress_none(self):
self.task_mock.state = 'PROGRESS'
self.task_mock._get_task_meta.return_value = {
'task_name': 'task.name',
'messages': ['something'],
}
self.assertDictEqual(
TaskSerializer(self.task_mock).data,
{
'id': str(self.task_mock.id),
'name': 'task.name',
'state': 'PROGRESS',
'messages': ['something'],
'progress': 0.0,
'parent_id': str(self.task_mock.parent.id),
}
)
def test_prefixes(self):
self.task_mock._get_task_meta.return_value = {
'task_name': 'arkindex.dataimport.tasks.task.name',
'messages': ['something'],
}
self.assertDictEqual(
TaskSerializer(self.task_mock).data,
{
'id': str(self.task_mock.id),
'name': 'task.name',
'state': states.SUCCESS,
'messages': ['something'],
'progress': 1.0,
'parent_id': str(self.task_mock.parent.id),
}
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment