Files
mayan-edms/mayan/apps/document_states/tests/mixins.py
Roberto Rosario 042745e0ca Add document state action view test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:18:17 -04:00

82 lines
3.1 KiB
Python

from __future__ import unicode_literals
from ..classes import WorkflowAction
from ..models import Workflow
from .literals import (
TEST_WORKFLOW_INITIAL_STATE_LABEL, TEST_WORKFLOW_INITIAL_STATE_COMPLETION,
TEST_WORKFLOW_INSTANCE_LOG_ENTRY_COMMENT, TEST_WORKFLOW_INTERNAL_NAME,
TEST_WORKFLOW_LABEL, TEST_WORKFLOW_STATE_LABEL,
TEST_WORKFLOW_STATE_COMPLETION, TEST_WORKFLOW_TRANSITION_LABEL,
TEST_WORKFLOW_TRANSITION_LABEL_2
)
class TestWorkflowAction(WorkflowAction):
label = 'test workflow state action'
class WorkflowStateActionTestMixin(object):
TestWorkflowAction = TestWorkflowAction
test_workflow_state_action_path = 'mayan.apps.document_states.tests.mixins.TestWorkflowAction'
def _create_test_workflow_state_action(self):
self.test_workflow_state.actions.create(
label=self.TestWorkflowAction.label,
action_path=self.test_workflow_state_action_path
)
class WorkflowTestMixin(object):
def _create_test_workflow(self, add_document_type=False):
self.test_workflow = Workflow.objects.create(
label=TEST_WORKFLOW_LABEL,
internal_name=TEST_WORKFLOW_INTERNAL_NAME
)
if add_document_type:
self.test_workflow.document_types.add(self.test_document_type)
def _create_test_workflow_state(self):
self.test_workflow_state = self.test_workflow.states.create(
completion=TEST_WORKFLOW_STATE_COMPLETION,
label=TEST_WORKFLOW_STATE_LABEL
)
def _create_test_workflow_states(self):
self.test_workflow_state_1 = self.test_workflow.states.create(
completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION,
initial=True, label=TEST_WORKFLOW_INITIAL_STATE_LABEL
)
self.test_workflow_state_2 = self.test_workflow.states.create(
completion=TEST_WORKFLOW_STATE_COMPLETION,
label=TEST_WORKFLOW_STATE_LABEL
)
def _create_test_workflow_transition(self):
self.test_workflow_transition = self.test_workflow.transitions.create(
label=TEST_WORKFLOW_TRANSITION_LABEL,
origin_state=self.test_workflow_state_1,
destination_state=self.test_workflow_state_2,
)
def _create_test_workflow_transitions(self):
self.test_workflow_transition = self.test_workflow.transitions.create(
workflow=self.test_workflow, label=TEST_WORKFLOW_TRANSITION_LABEL,
origin_state=self.test_workflow_state_1,
destination_state=self.test_workflow_state_2
)
self.test_workflow_transition_2 = self.test_workflow.transitions.create(
workflow=self.test_workflow, label=TEST_WORKFLOW_TRANSITION_LABEL_2,
origin_state=self.test_workflow_state_1,
destination_state=self.test_workflow_state_2
)
def _create_test_workflow_instance_log_entry(self):
self.test_document.workflows.first().log_entries.create(
comment=TEST_WORKFLOW_INSTANCE_LOG_ENTRY_COMMENT,
transition=self.test_workflow_transition,
user=self._test_case_user
)