From 626e1f34516c3b18ea02b4fb365cac88ace75a9c Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 3 Oct 2018 02:50:49 -0400 Subject: [PATCH] Fix workflow edit view tests. Improvie workflow view test via test mixins. Signed-off-by: Roberto Rosario --- mayan/apps/document_states/tests/mixins.py | 48 +++++++++ .../apps/document_states/tests/test_views.py | 102 +++--------------- 2 files changed, 60 insertions(+), 90 deletions(-) create mode 100644 mayan/apps/document_states/tests/mixins.py diff --git a/mayan/apps/document_states/tests/mixins.py b/mayan/apps/document_states/tests/mixins.py new file mode 100644 index 0000000000..2ffe997535 --- /dev/null +++ b/mayan/apps/document_states/tests/mixins.py @@ -0,0 +1,48 @@ +from __future__ import unicode_literals + +from ..models import Workflow, WorkflowState, WorkflowTransition + +from .literals import ( + TEST_WORKFLOW_INITIAL_STATE_LABEL, TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + 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 WorkflowTestMixin(object): + def _create_workflow(self): + self.workflow = Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + + def _create_workflow_states(self): + self.workflow_initial_state = WorkflowState.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True + ) + self.workflow_state = WorkflowState.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_STATE_LABEL, + completion=TEST_WORKFLOW_STATE_COMPLETION + ) + + def _create_workflow_transition(self): + self.workflow_transition = WorkflowTransition.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_initial_state, + destination_state=self.workflow_state + ) + + def _create_workflow_transitions(self): + self.workflow_transition = WorkflowTransition.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_initial_state, + destination_state=self.workflow_state + ) + + self.workflow_transition_2 = WorkflowTransition.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL_2, + origin_state=self.workflow_initial_state, + destination_state=self.workflow_state + ) diff --git a/mayan/apps/document_states/tests/test_views.py b/mayan/apps/document_states/tests/test_views.py index 1cd37e4d31..4bd3fee317 100644 --- a/mayan/apps/document_states/tests/test_views.py +++ b/mayan/apps/document_states/tests/test_views.py @@ -18,21 +18,15 @@ from .literals import ( TEST_WORKFLOW_LABEL_EDITED, TEST_WORKFLOW_STATE_LABEL, TEST_WORKFLOW_STATE_LABEL_EDITED, TEST_WORKFLOW_STATE_COMPLETION, TEST_WORKFLOW_TRANSITION_LABEL, TEST_WORKFLOW_TRANSITION_LABEL_EDITED, - TEST_WORKFLOW_TRANSITION_LABEL_2 ) +from .mixins import WorkflowTestMixin -class DocumentStateViewTestCase(GenericViewTestCase): +class DocumentStateViewTestCase(WorkflowTestMixin, GenericViewTestCase): def setUp(self): super(DocumentStateViewTestCase, self).setUp() self.login_user() - def _create_workflow(self): - self.workflow = Workflow.objects.create( - label=TEST_WORKFLOW_LABEL, - internal_name=TEST_WORKFLOW_INTERNAL_NAME - ) - def _request_workflow_create_view(self): return self.post( viewname='document_states:setup_workflow_create', data={ @@ -77,7 +71,10 @@ class DocumentStateViewTestCase(GenericViewTestCase): return self.post( viewname='document_states:setup_workflow_edit', args=( self.workflow.pk, - ), data={'label': TEST_WORKFLOW_LABEL_EDITED} + ), data={ + 'label': TEST_WORKFLOW_LABEL_EDITED, + 'internal_name': self.workflow.internal_name + } ) def test_workflow_edit_view_no_access(self): @@ -85,15 +82,15 @@ class DocumentStateViewTestCase(GenericViewTestCase): response = self._request_workflow_edit_view() self.assertEquals(response.status_code, 403) self.workflow.refresh_from_db() - self.assertTrue(self.workflow.label, TEST_WORKFLOW_LABEL) + self.assertEqual(self.workflow.label, TEST_WORKFLOW_LABEL) def test_workflow_edit_view_with_access(self): self._create_workflow() self.grant_access(permission=permission_workflow_edit, obj=self.workflow) response = self._request_workflow_edit_view() - self.assertEquals(response.status_code, 200) + self.assertEquals(response.status_code, 302) self.workflow.refresh_from_db() - self.assertTrue(self.workflow.label, TEST_WORKFLOW_LABEL_EDITED) + self.assertEqual(self.workflow.label, TEST_WORKFLOW_LABEL_EDITED) def _request_workflow_list_view(self): return self.get( @@ -133,27 +130,11 @@ class DocumentStateViewTestCase(GenericViewTestCase): self.assertEquals(response.status_code, 200) -class DocumentStateStateViewTestCase(GenericViewTestCase): +class DocumentStateStateViewTestCase(WorkflowTestMixin, GenericViewTestCase): def setUp(self): super(DocumentStateStateViewTestCase, self).setUp() self.login_user() - def _create_workflow(self): - self.workflow = Workflow.objects.create( - label=TEST_WORKFLOW_LABEL, - internal_name=TEST_WORKFLOW_INTERNAL_NAME - ) - - def _create_workflow_states(self): - self.workflow_initial_state = WorkflowState.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, - completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True - ) - self.workflow_state = WorkflowState.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_STATE_LABEL, - completion=TEST_WORKFLOW_STATE_COMPLETION - ) - def _request_workflow_state_create_view(self): return self.post( viewname='document_states:setup_workflow_state_create', @@ -300,47 +281,11 @@ class DocumentStateToolViewTestCase(GenericDocumentViewTestCase): ) -class DocumentStateTransitionViewTestCase(GenericDocumentViewTestCase): +class DocumentStateTransitionViewTestCase(WorkflowTestMixin, GenericDocumentViewTestCase): def setUp(self): super(DocumentStateTransitionViewTestCase, self).setUp() self.login_user() - def _create_workflow(self): - self.workflow = Workflow.objects.create( - label=TEST_WORKFLOW_LABEL, - internal_name=TEST_WORKFLOW_INTERNAL_NAME - ) - - def _create_workflow_states(self): - self.workflow_initial_state = WorkflowState.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, - completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True - ) - self.workflow_state = WorkflowState.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_STATE_LABEL, - completion=TEST_WORKFLOW_STATE_COMPLETION - ) - - def _create_workflow_transition(self): - self.workflow_transition = WorkflowTransition.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, - origin_state=self.workflow_initial_state, - destination_state=self.workflow_state - ) - - def _create_workflow_transitions(self): - self.workflow_transition = WorkflowTransition.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, - origin_state=self.workflow_initial_state, - destination_state=self.workflow_state - ) - - self.workflow_transition_2 = WorkflowTransition.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL_2, - origin_state=self.workflow_initial_state, - destination_state=self.workflow_state - ) - def _create_document(self): with open(TEST_SMALL_DOCUMENT_PATH, 'rb') as file_object: self.document_2 = self.document_type.new_document( @@ -528,34 +473,11 @@ class DocumentStateTransitionViewTestCase(GenericDocumentViewTestCase): ) -class DocumentStateTransitionEventViewTestCase(GenericDocumentViewTestCase): +class DocumentStateTransitionEventViewTestCase(WorkflowTestMixin, GenericDocumentViewTestCase): def setUp(self): super(DocumentStateTransitionEventViewTestCase, self).setUp() self.login_user() - def _create_workflow(self): - self.workflow = Workflow.objects.create( - label=TEST_WORKFLOW_LABEL, - internal_name=TEST_WORKFLOW_INTERNAL_NAME - ) - - def _create_workflow_states(self): - self.workflow_initial_state = WorkflowState.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, - completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True - ) - self.workflow_state = WorkflowState.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_STATE_LABEL, - completion=TEST_WORKFLOW_STATE_COMPLETION - ) - - def _create_workflow_transition(self): - self.workflow_transition = WorkflowTransition.objects.create( - workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, - origin_state=self.workflow_initial_state, - destination_state=self.workflow_state - ) - def _request_workflow_transition_event_list_view(self): return self.get( viewname='document_states:setup_workflow_transition_events',