Backport workflow context and field support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from ..literals import FIELD_TYPE_CHOICE_CHAR
|
||||
|
||||
TEST_INDEX_LABEL = 'test workflow index'
|
||||
|
||||
TEST_WORKFLOW_LABEL = 'test workflow label'
|
||||
@@ -11,6 +13,10 @@ TEST_WORKFLOW_INSTANCE_LOG_ENTRY_COMMENT = 'test workflow instance log entry com
|
||||
TEST_WORKFLOW_STATE_LABEL = 'test state label'
|
||||
TEST_WORKFLOW_STATE_LABEL_EDITED = 'test state label edited'
|
||||
TEST_WORKFLOW_STATE_COMPLETION = 66
|
||||
TEST_WORKFLOW_TRANSITION_FIELD_HELP_TEXT = 'test workflow transition field help test'
|
||||
TEST_WORKFLOW_TRANSITION_FIELD_LABEL = 'test workflow transition field'
|
||||
TEST_WORKFLOW_TRANSITION_FIELD_NAME = 'test_workflow_transition_field'
|
||||
TEST_WORKFLOW_TRANSITION_FIELD_TYPE = FIELD_TYPE_CHOICE_CHAR
|
||||
TEST_WORKFLOW_TRANSITION_LABEL = 'test transition label'
|
||||
TEST_WORKFLOW_TRANSITION_LABEL_2 = 'test transition label 2'
|
||||
TEST_WORKFLOW_TRANSITION_LABEL_EDITED = 'test transition label edited'
|
||||
@@ -18,3 +24,4 @@ TEST_WORKFLOW_TRANSITION_LABEL_EDITED = 'test transition label edited'
|
||||
TEST_INDEX_TEMPLATE_METADATA_EXPRESSION = '{{{{ document.workflow.{}.get_current_state }}}}'.format(
|
||||
TEST_WORKFLOW_INTERNAL_NAME
|
||||
)
|
||||
|
||||
|
||||
@@ -152,9 +152,10 @@ class WorkflowTransitionViewTestMixin(object):
|
||||
|
||||
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,
|
||||
viewname='document_states:workflow_instance_transition_execute',
|
||||
kwargs={
|
||||
'workflow_instance_pk': self.test_workflow_instance.pk,
|
||||
'workflow_transition_pk': self.test_workflow_transition.pk,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -10,7 +10,10 @@ from ..permissions import (
|
||||
)
|
||||
|
||||
from .literals import (
|
||||
TEST_WORKFLOW_TRANSITION_LABEL, TEST_WORKFLOW_TRANSITION_LABEL_EDITED
|
||||
TEST_WORKFLOW_TRANSITION_FIELD_HELP_TEXT,
|
||||
TEST_WORKFLOW_TRANSITION_FIELD_LABEL, TEST_WORKFLOW_TRANSITION_FIELD_NAME,
|
||||
TEST_WORKFLOW_TRANSITION_FIELD_TYPE, TEST_WORKFLOW_TRANSITION_LABEL,
|
||||
TEST_WORKFLOW_TRANSITION_LABEL_EDITED
|
||||
)
|
||||
from .mixins import (
|
||||
WorkflowTestMixin, WorkflowViewTestMixin, WorkflowTransitionViewTestMixin
|
||||
@@ -160,7 +163,7 @@ class WorkflowTransitionDocumentViewTestCase(
|
||||
permission.
|
||||
"""
|
||||
response = self._request_test_workflow_transition()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
# Workflow should remain in the same initial state
|
||||
self.assertEqual(
|
||||
@@ -232,3 +235,125 @@ class WorkflowTransitionEventViewTestCase(
|
||||
|
||||
response = self._request_test_workflow_transition_event_list_view()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
class WorkflowTransitionFieldViewTestCase(
|
||||
WorkflowTestMixin, WorkflowTransitionViewTestMixin, GenericViewTestCase
|
||||
):
|
||||
def setUp(self):
|
||||
super(WorkflowTransitionFieldViewTestCase, self).setUp()
|
||||
self._create_test_workflow()
|
||||
self._create_test_workflow_states()
|
||||
self._create_test_workflow_transition()
|
||||
|
||||
def _create_test_workflow_transition_field(self):
|
||||
self.test_workflow_transition_field = self.test_workflow_transition.fields.create(
|
||||
field_type=TEST_WORKFLOW_TRANSITION_FIELD_TYPE,
|
||||
name=TEST_WORKFLOW_TRANSITION_FIELD_NAME,
|
||||
label=TEST_WORKFLOW_TRANSITION_FIELD_LABEL,
|
||||
help_text=TEST_WORKFLOW_TRANSITION_FIELD_HELP_TEXT
|
||||
)
|
||||
|
||||
def _request_test_workflow_transition_field_list_view(self):
|
||||
return self.get(
|
||||
viewname='document_states:setup_workflow_transition_field_list',
|
||||
kwargs={'pk': self.test_workflow_transition.pk}
|
||||
)
|
||||
|
||||
def test_workflow_transition_field_list_view_no_permission(self):
|
||||
self._create_test_workflow_transition_field()
|
||||
|
||||
response = self._request_test_workflow_transition_field_list_view()
|
||||
self.assertNotContains(
|
||||
response=response,
|
||||
text=self.test_workflow_transition_field.label,
|
||||
status_code=404
|
||||
)
|
||||
|
||||
def test_workflow_transition_field_list_view_with_access(self):
|
||||
self._create_test_workflow_transition_field()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_workflow, permission=permission_workflow_edit
|
||||
)
|
||||
|
||||
response = self._request_test_workflow_transition_field_list_view()
|
||||
self.assertContains(
|
||||
response=response,
|
||||
text=self.test_workflow_transition_field.label,
|
||||
status_code=200
|
||||
)
|
||||
|
||||
def _request_workflow_transition_field_create_view(self):
|
||||
return self.post(
|
||||
viewname='document_states:setup_workflow_transition_field_create',
|
||||
kwargs={'pk': self.test_workflow_transition.pk},
|
||||
data={
|
||||
'field_type': TEST_WORKFLOW_TRANSITION_FIELD_TYPE,
|
||||
'name': TEST_WORKFLOW_TRANSITION_FIELD_NAME,
|
||||
'label': TEST_WORKFLOW_TRANSITION_FIELD_LABEL,
|
||||
'help_text': TEST_WORKFLOW_TRANSITION_FIELD_HELP_TEXT
|
||||
}
|
||||
)
|
||||
|
||||
def test_workflow_transition_field_create_view_no_permission(self):
|
||||
workflow_transition_field_count = self.test_workflow_transition.fields.count()
|
||||
|
||||
response = self._request_workflow_transition_field_create_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.assertEqual(
|
||||
self.test_workflow_transition.fields.count(),
|
||||
workflow_transition_field_count
|
||||
)
|
||||
|
||||
def test_workflow_transition_field_create_view_with_access(self):
|
||||
workflow_transition_field_count = self.test_workflow_transition.fields.count()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_workflow, permission=permission_workflow_edit
|
||||
)
|
||||
|
||||
response = self._request_workflow_transition_field_create_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.assertEqual(
|
||||
self.test_workflow_transition.fields.count(),
|
||||
workflow_transition_field_count + 1
|
||||
)
|
||||
|
||||
def _request_workflow_transition_field_delete_view(self):
|
||||
return self.post(
|
||||
viewname='document_states:setup_workflow_transition_field_delete',
|
||||
kwargs={'pk': self.test_workflow_transition_field.pk},
|
||||
)
|
||||
|
||||
def test_workflow_transition_field_delete_view_no_permission(self):
|
||||
self._create_test_workflow_transition_field()
|
||||
|
||||
workflow_transition_field_count = self.test_workflow_transition.fields.count()
|
||||
|
||||
response = self._request_workflow_transition_field_delete_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.assertEqual(
|
||||
self.test_workflow_transition.fields.count(),
|
||||
workflow_transition_field_count
|
||||
)
|
||||
|
||||
def test_workflow_transition_field_delete_view_with_access(self):
|
||||
self._create_test_workflow_transition_field()
|
||||
|
||||
workflow_transition_field_count = self.test_workflow_transition.fields.count()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_workflow, permission=permission_workflow_edit
|
||||
)
|
||||
|
||||
response = self._request_workflow_transition_field_delete_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.assertEqual(
|
||||
self.test_workflow_transition.fields.count(),
|
||||
workflow_transition_field_count - 1
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user