Add workflow event tests

Modernize tests. Move test HTTP requests to the test mixin
module.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-05-06 23:39:49 -04:00
parent b6e7a462b0
commit 7a4a4818fe
6 changed files with 379 additions and 279 deletions

View File

@@ -6,9 +6,10 @@ 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
TEST_WORKFLOW_LABEL, TEST_WORKFLOW_LABEL_EDITED,
TEST_WORKFLOW_STATE_COMPLETION, TEST_WORKFLOW_STATE_LABEL,
TEST_WORKFLOW_STATE_LABEL_EDITED, TEST_WORKFLOW_TRANSITION_LABEL,
TEST_WORKFLOW_TRANSITION_LABEL_EDITED, TEST_WORKFLOW_TRANSITION_LABEL_2
)
@@ -27,6 +28,41 @@ class WorkflowStateActionTestMixin(object):
)
class WorkflowStateViewTestMixin(object):
def _request_test_workflow_state_create_view(self, extra_data=None):
data = {
'label': TEST_WORKFLOW_STATE_LABEL,
'completion': TEST_WORKFLOW_STATE_COMPLETION,
}
if extra_data:
data.update(extra_data)
return self.post(
viewname='document_states:setup_workflow_state_create',
kwargs={'pk': self.test_workflow.pk}, data=data
)
def _request_test_workflow_state_delete_view(self):
return self.post(
viewname='document_states:setup_workflow_state_delete',
kwargs={'pk': self.test_workflow_state_1.pk}
)
def _request_test_workflow_state_edit_view(self):
return self.post(
viewname='document_states:setup_workflow_state_edit',
kwargs={'pk': self.test_workflow_state_1.pk}, data={
'label': TEST_WORKFLOW_STATE_LABEL_EDITED
}
)
def _request_test_workflow_state_list_view(self):
return self.get(
viewname='document_states:setup_workflow_state_list',
kwargs={'pk': self.test_workflow.pk}
)
class WorkflowTestMixin(object):
def _create_test_workflow(self, add_document_type=False):
self.test_workflow = Workflow.objects.create(
@@ -79,3 +115,84 @@ class WorkflowTestMixin(object):
transition=self.test_workflow_transition,
user=self._test_case_user
)
class WorkflowTransitionViewTestMixin(object):
def _request_test_workflow_transition_create_view(self):
return self.post(
viewname='document_states:setup_workflow_transition_create',
kwargs={'pk': self.test_workflow.pk}, data={
'label': TEST_WORKFLOW_TRANSITION_LABEL,
'origin_state': self.test_workflow_state_1.pk,
'destination_state': self.test_workflow_state_2.pk,
}
)
def _request_test_workflow_transition_delete_view(self):
return self.post(
viewname='document_states:setup_workflow_transition_delete',
kwargs={'pk': self.test_workflow_transition.pk}
)
def _request_test_workflow_transition_edit_view(self):
return self.post(
viewname='document_states:setup_workflow_transition_edit',
kwargs={'pk': self.test_workflow_transition.pk}, data={
'label': TEST_WORKFLOW_TRANSITION_LABEL_EDITED,
'origin_state': self.test_workflow_state_1.pk,
'destination_state': self.test_workflow_state_2.pk,
}
)
def _request_test_workflow_transition_list_view(self):
return self.get(
viewname='document_states:setup_workflow_transition_list',
kwargs={'pk': self.test_workflow.pk}
)
def _request_test_workflow_transition(self):
return self.post(
viewname='document_states:workflow_instance_transition',
kwargs={'pk': self.test_workflow_instance.pk}, data={
'transition': self.test_workflow_transition.pk,
}
)
class WorkflowViewTestMixin(object):
def _request_test_workflow_create_view(self):
return self.post(
viewname='document_states:setup_workflow_create', data={
'label': TEST_WORKFLOW_LABEL,
'internal_name': TEST_WORKFLOW_INTERNAL_NAME,
}
)
def _request_test_workflow_delete_view(self):
return self.post(
viewname='document_states:setup_workflow_delete', kwargs={
'pk': self.test_workflow.pk
}
)
def _request_test_workflow_edit_view(self):
return self.post(
viewname='document_states:setup_workflow_edit', kwargs={
'pk': self.test_workflow.pk,
}, data={
'label': TEST_WORKFLOW_LABEL_EDITED,
'internal_name': self.test_workflow.internal_name
}
)
def _request_test_workflow_list_view(self):
return self.get(
viewname='document_states:setup_workflow_list',
)
def _request_test_workflow_preview_view(self):
return self.get(
viewname='document_states:workflow_preview', kwargs={
'pk': self.test_workflow.pk,
}
)