Skip to content

Commit

Permalink
Merge pull request #26 from openimis/develop
Browse files Browse the repository at this point in the history
MERGING develop into release/23.10
  • Loading branch information
delcroip committed Dec 6, 2023
2 parents 826c6d7 + 82a7634 commit e2c81b0
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 75 deletions.
120 changes: 68 additions & 52 deletions tasks_management/tests/data.py
Expand Up @@ -2,55 +2,71 @@
from tasks_management.models import Task
from tasks_management.models import TaskGroup

task_group_add_payload_any = {
"code": "example_any",
"completion_policy": TaskGroup.TaskGroupCompletionPolicy.ANY,
}
task_group_add_payload_all = {
"code": "example_all",
"completion_policy": TaskGroup.TaskGroupCompletionPolicy.ALL,
}
task_group_add_payload_n = {
"code": "example_n",
"completion_policy": TaskGroup.TaskGroupCompletionPolicy.N,
}

task_payload = {
'source': 'test_source',
'entity': InteractiveUser.objects.first(),
'status': Task.Status.RECEIVED,
'executor_action_event': 'test_executor_action',
'business_status': dict(),
'business_event': 'test_business_action',
'data': dict()
}

task_payload_resolve_any = {
'source': 'test_source',
'entity': InteractiveUser.objects.first(),
'status': Task.Status.RECEIVED,
'executor_action_event': 'approve_any',
'business_status': dict(),
'business_event': 'test_business_action_any',
'data': dict()
}

task_payload_resolve_all = {
'source': 'test_source',
'entity': InteractiveUser.objects.first(),
'status': Task.Status.RECEIVED,
'executor_action_event': 'approve_all',
'business_status': dict(),
'business_event': 'test_business_action_all',
'data': dict()
}

task_payload_resolve_n = {
'source': 'test_source',
'entity': InteractiveUser.objects.first(),
'status': Task.Status.RECEIVED,
'executor_action_event': 'approve_n',
'business_status': dict(),
'business_event': 'test_business_action_n',
'data': dict()
}


class TaskDataMixin:



task_group_add_payload_any = {
"code": "example_any",
"completion_policy": TaskGroup.TaskGroupCompletionPolicy.ANY,
}
task_group_add_payload_all = {
"code": "example_all",
"completion_policy": TaskGroup.TaskGroupCompletionPolicy.ALL,
}
task_group_add_payload_n = {
"code": "example_n",
"completion_policy": TaskGroup.TaskGroupCompletionPolicy.N,
}

task_payload = {
'source': 'test_source',
'entity': None,
'status': Task.Status.RECEIVED,
'executor_action_event': 'test_executor_action',
'business_status': dict(),
'business_event': 'test_business_action',
'data': dict()
}

task_payload_resolve_any = {
'source': 'test_source',
'entity': None,
'status': Task.Status.RECEIVED,
'executor_action_event': 'approve_any',
'business_status': dict(),
'business_event': 'test_business_action_any',
'data': dict()
}

task_payload_resolve_all = {
'source': 'test_source',
'entity': None,
'status': Task.Status.RECEIVED,
'executor_action_event': 'approve_all',
'business_status': dict(),
'business_event': 'test_business_action_all',
'data': dict()
}

task_payload_resolve_n = {
'source': 'test_source',
'entity': None,
'status': Task.Status.RECEIVED,
'executor_action_event': 'approve_n',
'business_status': dict(),
'business_event': 'test_business_action_n',
'data': dict()
}

@classmethod
def init_data(cls):
entity = InteractiveUser.objects.first()
cls.task_payload_resolve_n['entity'] = entity
cls.task_payload_resolve_all['entity'] = entity
cls.task_payload_resolve_any['entity'] = entity
cls.task_payload['entity'] = entity


8 changes: 4 additions & 4 deletions tasks_management/tests/task_event_tests.py
Expand Up @@ -4,7 +4,7 @@
from django.test import TestCase

from core.test_helpers import create_test_interactive_user
from tasks_management.tests.data import task_payload
from tasks_management.tests.data import TaskDataMixin
from tasks_management.services import TaskService
from tasks_management.models import Task

Expand All @@ -16,7 +16,7 @@
_signal_name_complete = 'task_service.complete_task'


class TaskEventTestCase(TestCase):
class TaskEventTestCase(TestCase, TaskDataMixin):
user = None
service = None
mock_handler = None
Expand All @@ -26,15 +26,15 @@ def setUpClass(cls):
super(TaskEventTestCase, cls).setUpClass()
cls.user = create_test_interactive_user(username="test_admin")
cls.service = TaskService(cls.user)

cls.init_data()
cls.mock_handler = Mock()
REGISTERED_SERVICE_SIGNALS[_signal_name_execute] = RegisteredServiceSignal(_signal_providing_args)
REGISTERED_SERVICE_SIGNALS[_signal_name_complete] = RegisteredServiceSignal(_signal_providing_args)
bind_service_signal(_signal_name_execute, cls.mock_handler.execute, ServiceSignalBindType.AFTER)
bind_service_signal(_signal_name_complete, cls.mock_handler.complete, ServiceSignalBindType.AFTER)

def test_complete_task_event(self):
result = self.service.create(task_payload)
result = self.service.create(self.task_payload)

self.assertTrue(result)
self.assertTrue(result['success'])
Expand Down
8 changes: 5 additions & 3 deletions tasks_management/tests/task_group_service_tests.py
Expand Up @@ -2,12 +2,12 @@

from tasks_management.models import TaskGroup
from tasks_management.services import TaskGroupService
from tasks_management.tests.data import task_group_add_payload_any
from tasks_management.tests.data import TaskDataMixin

from tasks_management.tests.helpers import LogInHelper


class TaskGroupServiceTest(TestCase):
class TaskGroupServiceTest(TestCase, TaskDataMixin):
user = None
task_executor = None
service = None
Expand All @@ -20,11 +20,13 @@ def setUpClass(cls):
cls.user = LogInHelper().get_or_create_user_api()
cls.task_executor = LogInHelper().get_or_create_task_executor_api()
cls.service = TaskGroupService(cls.user)
cls.init_data()
cls.query_all = TaskGroup.objects.filter(is_deleted=False)
cls.payload = {
**task_group_add_payload_any,
**cls.task_group_add_payload_any,
"user_ids": [cls.task_executor.id]
}


def test_add_task_group(self):
result = self.service.create(self.payload)
Expand Down
31 changes: 15 additions & 16 deletions tasks_management/tests/task_service_tests.py
Expand Up @@ -4,16 +4,14 @@
from django.test import TestCase

from core.test_helpers import create_test_interactive_user
from tasks_management.tests.data import task_payload, task_payload_resolve_any, \
task_payload_resolve_all, task_payload_resolve_n, task_group_add_payload_all, task_group_add_payload_n, \
task_group_add_payload_any
from tasks_management.tests.data import TaskDataMixin
from tasks_management.services import TaskService, TaskGroupService
from tasks_management.models import Task, TaskGroup
from tasks_management.tests.helpers import LogInHelper
from tasks_management.utils import APPROVED


class TaskServiceTestCase(TestCase):
class TaskServiceTestCase(TestCase, TaskDataMixin):
user = None
task_executor = None
service = None
Expand All @@ -26,13 +24,14 @@ def setUpClass(cls):
super(TaskServiceTestCase, cls).setUpClass()
cls.user = LogInHelper().get_or_create_user_api()
cls.task_executor = LogInHelper().get_or_create_task_executor_api()
cls.taskgroup_all_id = cls.__create_taskgroup(task_group_add_payload_all)
cls.taskgroup_n_id = cls.__create_taskgroup(task_group_add_payload_n)
cls.taskgroup_any_id = cls.__create_taskgroup(task_group_add_payload_any)
cls.init_data()
cls.taskgroup_all_id = cls.__create_taskgroup(cls.task_group_add_payload_all)
cls.taskgroup_n_id = cls.__create_taskgroup(cls.task_group_add_payload_n)
cls.taskgroup_any_id = cls.__create_taskgroup(cls.task_group_add_payload_any)
cls.service = TaskService(cls.user)

def test_create_task(self):
result = self.service.create(task_payload)
result = self.service.create(self.task_payload)

self.assertTrue(result)
self.assertTrue(result['success'])
Expand All @@ -41,14 +40,14 @@ def test_create_task(self):
self.assertEqual(Task.objects.filter(id=obj_id).first().status, Task.Status.RECEIVED)

def test_update_task(self):
result = self.service.create(task_payload)
result = self.service.create(self.task_payload)

self.assertTrue(result)
self.assertTrue(result['success'])
obj_id = result['data']['id']
self.assertTrue(Task.objects.filter(id=obj_id).exists())

update_payload = copy.deepcopy(task_payload)
update_payload = copy.deepcopy(self.task_payload)
update_payload['source'] = 'updated_source'
update_payload['id'] = result['data']['uuid']
result = self.service.update(update_payload)
Expand All @@ -57,7 +56,7 @@ def test_update_task(self):
self.assertTrue(result['success'])

def test_delete_task(self):
result = self.service.create(task_payload)
result = self.service.create(self.task_payload)

self.assertTrue(result)
self.assertTrue(result['success'])
Expand All @@ -71,7 +70,7 @@ def test_delete_task(self):
self.assertTrue(result['success'])

def test_complete_task(self):
result = self.service.create(task_payload)
result = self.service.create(self.task_payload)

self.assertTrue(result)
self.assertTrue(result['success'])
Expand All @@ -86,7 +85,7 @@ def test_complete_task(self):
self.assertEqual(Task.objects.filter(id=obj_id).first().status, Task.Status.COMPLETED)

def test_fail_task(self):
result = self.service.create(task_payload)
result = self.service.create(self.task_payload)

self.assertTrue(result)
self.assertTrue(result['success'])
Expand All @@ -103,7 +102,7 @@ def test_fail_task(self):
@skip('To be redeveloped')
def test_resolve_task_any(self):
create_payload = {
**task_payload_resolve_any,
**self.task_payload_resolve_any,
"task_group_id": self.taskgroup_any_id
}
result = self.service.create(create_payload)
Expand All @@ -123,7 +122,7 @@ def test_resolve_task_any(self):
@skip('To be redeveloped')
def test_resolve_task_all(self):
create_payload = {
**task_payload_resolve_all,
**self.task_payload_resolve_all,
"task_group_id": self.taskgroup_any_id
}
result = self.service.create(create_payload)
Expand All @@ -144,7 +143,7 @@ def test_resolve_task_all(self):
@skip('To be redeveloped')
def test_resolve_task_n(self):
create_payload = {
**task_payload_resolve_n,
**self.task_payload_resolve_n,
"task_group_id": self.taskgroup_any_id
}
result = self.service.create(create_payload)
Expand Down

0 comments on commit e2c81b0

Please sign in to comment.