diff --git a/HISTORY.rst b/HISTORY.rst index fced11d2d7..821e6d0b5b 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -6,6 +6,8 @@ single page navigation to jump to the home view. * Remove redundant Celery queue declarations from the file_metadata app. +* Add internal_name field to workflow serializer. + Fixes workflow API creation view. 3.2.6 (2019-07-10) ================== diff --git a/docs/releases/3.2.7.rst b/docs/releases/3.2.7.rst index 6cf8841bad..4844a1753c 100644 --- a/docs/releases/3.2.7.rst +++ b/docs/releases/3.2.7.rst @@ -13,6 +13,8 @@ Changes single page navigation to jump to the home view. - Remove redundant Celery queue declarations from the file_metadata app. +- Add internal_name field to workflow serializer. + Fixes workflow API creation view. Removals -------- diff --git a/mayan/apps/document_states/serializers.py b/mayan/apps/document_states/serializers.py index fabf978dd5..dd25d84093 100644 --- a/mayan/apps/document_states/serializers.py +++ b/mayan/apps/document_states/serializers.py @@ -266,7 +266,7 @@ class WritableWorkflowSerializer(serializers.ModelSerializer): 'url': {'view_name': 'rest_api:workflow-detail'}, } fields = ( - 'document_types_pk_list', 'label', 'id', 'url', + 'document_types_pk_list', 'label', 'id', 'internal_name', 'url', ) model = Workflow diff --git a/mayan/apps/document_states/tests/test_api.py b/mayan/apps/document_states/tests/test_api.py index c8c38e2bc4..84c55394f0 100644 --- a/mayan/apps/document_states/tests/test_api.py +++ b/mayan/apps/document_states/tests/test_api.py @@ -14,22 +14,26 @@ from ..permissions import ( ) from .literals import ( - TEST_WORKFLOW_STATE_COMPLETION, TEST_WORKFLOW_LABEL, - TEST_WORKFLOW_LABEL_EDITED, TEST_WORKFLOW_STATE_LABEL, - TEST_WORKFLOW_STATE_LABEL_EDITED, TEST_WORKFLOW_TRANSITION_LABEL, - TEST_WORKFLOW_TRANSITION_LABEL_EDITED + TEST_WORKFLOW_INTERNAL_NAME, 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 ) - from .mixins import WorkflowTestMixin -class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase): - auto_upload_document = False +class WorkflowAPIViewTestMixin(object): + def _request_test_document_type_workflow_list_api_view(self): + return self.get( + viewname='rest_api:documenttype-workflow-list', + kwargs={'pk': self.test_document_type.pk} + ) def _request_test_workflow_create_api_view(self, extra_data=None): data = { - 'label': TEST_WORKFLOW_LABEL + 'internal_name': TEST_WORKFLOW_INTERNAL_NAME, + 'label': TEST_WORKFLOW_LABEL, } if extra_data: @@ -39,6 +43,80 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) viewname='rest_api:workflow-list', data=data ) + def _request_test_workflow_delete_api_view(self): + return self.delete( + viewname='rest_api:workflow-detail', kwargs={ + 'pk': self.test_workflow.pk + } + ) + + def _request_test_workflow_detail_api_view(self): + return self.get( + viewname='rest_api:workflow-detail', kwargs={ + 'pk': self.test_workflow.pk + } + ) + + def _request_test_workflow_document_type_delete_api_view(self): + return self.delete( + viewname='rest_api:workflow-document-type-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'document_type_pk': self.test_document_type.pk + } + ) + + def _request_test_workflow_document_type_detail_api_view(self): + return self.get( + viewname='rest_api:workflow-document-type-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'document_type_pk': self.test_document_type.pk + } + ) + + def _request_test_workflow_document_type_list_create_api_view(self): + return self.post( + viewname='rest_api:workflow-document-type-list', + kwargs={'pk': self.test_workflow.pk}, data={ + 'document_type_pk': self.test_document_type.pk + } + ) + + def _request_test_workflow_document_type_list_api_view(self): + return self.get( + viewname='rest_api:workflow-document-type-list', kwargs={ + 'pk': self.test_workflow.pk + } + ) + + def _request_test_workflow_edit_patch_view(self): + return self.patch( + viewname='rest_api:workflow-detail', kwargs={ + 'pk': self.test_workflow.pk + }, data={'label': TEST_WORKFLOW_LABEL_EDITED} + ) + + def _request_test_workflow_edit_put_view(self): + return self.put( + viewname='rest_api:workflow-detail', kwargs={ + 'pk': self.test_workflow.pk + }, data={ + 'internal_name': TEST_WORKFLOW_INTERNAL_NAME, + 'label': TEST_WORKFLOW_LABEL_EDITED + } + ) + + def _request_test_workflow_list_api_view(self): + return self.get(viewname='rest_api:workflow-list') + + +class WorkflowAPIViewTestCase( + WorkflowAPIViewTestMixin, DocumentTestMixin, WorkflowTestMixin, + BaseAPITestCase +): + auto_upload_document = False + def test_workflow_create_view_no_permission(self): response = self._request_test_workflow_create_api_view() self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) @@ -88,13 +166,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) ) self.assertEqual(response.data['id'], workflow.pk) - def _request_test_workflow_delete_api_view(self): - return self.delete( - viewname='rest_api:workflow-detail', kwargs={ - 'pk': self.test_workflow.pk - } - ) - def test_workflow_delete_view_no_permission(self): self._create_test_workflow() response = self._request_test_workflow_delete_api_view() @@ -110,13 +181,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(Workflow.objects.count(), 0) - def _request_test_workflow_detail_api_view(self): - return self.get( - viewname='rest_api:workflow-detail', kwargs={ - 'pk': self.test_workflow.pk - } - ) - def test_workflow_detail_view_no_access(self): self._create_test_workflow() @@ -135,14 +199,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['label'], self.test_workflow.label) - def _request_test_workflow_document_type_list_create_api_view(self): - return self.post( - viewname='rest_api:workflow-document-type-list', - kwargs={'pk': self.test_workflow.pk}, data={ - 'document_type_pk': self.test_document_type.pk - } - ) - def test_workflow_document_type_create_view_no_access(self): self._create_test_workflow(add_document_type=False) @@ -153,7 +209,9 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) def test_workflow_document_type_create_view_with_access(self): self._create_test_workflow(add_document_type=False) - self.grant_access(permission=permission_workflow_edit, obj=self.test_workflow) + self.grant_access( + permission=permission_workflow_edit, obj=self.test_workflow + ) response = self._request_test_workflow_document_type_list_create_api_view() self.assertEqual(response.status_code, status.HTTP_201_CREATED) @@ -163,15 +221,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) (repr(self.test_document_type),) ) - def _request_test_workflow_document_type_delete_api_view(self): - return self.delete( - viewname='rest_api:workflow-document-type-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'document_type_pk': self.test_document_type.pk - } - ) - def test_workflow_document_type_delete_view_no_access(self): self._create_test_workflow(add_document_type=True) @@ -184,7 +233,9 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) def test_workflow_document_type_delete_view_with_access(self): self._create_test_workflow(add_document_type=True) - self.grant_access(permission=permission_workflow_edit, obj=self.test_workflow) + self.grant_access( + permission=permission_workflow_edit, obj=self.test_workflow + ) response = self._request_test_workflow_document_type_delete_api_view() self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -192,15 +243,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) self.test_workflow.refresh_from_db() self.assertEqual(self.test_workflow.document_types.count(), 0) - def _request_test_workflow_document_type_detail_api_view(self): - return self.get( - viewname='rest_api:workflow-document-type-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'document_type_pk': self.test_document_type.pk - } - ) - def test_workflow_document_type_detail_view_no_access(self): self._create_test_workflow(add_document_type=True) @@ -244,13 +286,8 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) response = self._request_test_workflow_document_type_detail_api_view() self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data['label'], self.test_document_type.label) - - def _request_test_workflow_document_type_list_api_view(self): - return self.get( - viewname='rest_api:workflow-document-type-list', kwargs={ - 'pk': self.test_workflow.pk - } + self.assertEqual( + response.data['label'], self.test_document_type.label ) def test_workflow_document_type_list_view_no_access(self): @@ -298,9 +335,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) response.data['results'][0]['label'], self.test_document_type.label ) - def _request_test_workflow_list_api_view(self): - return self.get(viewname='rest_api:workflow-list') - def test_workflow_list_view_no_access(self): self._create_test_workflow() @@ -321,13 +355,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) response.data['results'][0]['label'], self.test_workflow.label ) - def _request_test_workflow_edit_patch_view(self): - return self.patch( - viewname='rest_api:workflow-detail', kwargs={ - 'pk': self.test_workflow.pk - }, data={'label': TEST_WORKFLOW_LABEL_EDITED} - ) - def test_workflow_patch_view_no_access(self): self._create_test_workflow() @@ -340,7 +367,9 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) def test_workflow_patch_view_with_access(self): self._create_test_workflow() - self.grant_access(permission=permission_workflow_edit, obj=self.test_workflow) + self.grant_access( + permission=permission_workflow_edit, obj=self.test_workflow + ) response = self._request_test_workflow_edit_patch_view() self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -348,13 +377,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) self.test_workflow.refresh_from_db() self.assertEqual(self.test_workflow.label, TEST_WORKFLOW_LABEL_EDITED) - def _request_test_workflow_edit_put_view(self): - return self.put( - viewname='rest_api:workflow-detail', kwargs={ - 'pk': self.test_workflow.pk - }, data={'label': TEST_WORKFLOW_LABEL_EDITED} - ) - def test_workflow_put_view_no_access(self): self._create_test_workflow() @@ -377,12 +399,6 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) self.test_workflow.refresh_from_db() self.assertEqual(self.test_workflow.label, TEST_WORKFLOW_LABEL_EDITED) - def _request_test_document_type_workflow_list_api_view(self): - return self.get( - viewname='rest_api:documenttype-workflow-list', - kwargs={'pk': self.test_document_type.pk} - ) - def test_document_type_workflow_list_no_access(self): self._create_test_workflow(add_document_type=True) @@ -431,9 +447,7 @@ class WorkflowAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase) ) -class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase): - auto_upload_document = False - +class WorkflowStateAPIViewTestMixin(object): def _request_test_workflow_state_create_api_view(self): return self.post( viewname='rest_api:workflowstate-list', @@ -443,6 +457,60 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes } ) + def _request_test_workflow_state_delete_api_view(self): + return self.delete( + viewname='rest_api:workflowstate-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'state_pk': self.test_workflow_state.pk + } + ) + + def _request_test_workflow_state_detail_api_view(self): + return self.get( + viewname='rest_api:workflowstate-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'state_pk': self.test_workflow_state.pk + } + ) + + def _request_test_workflow_state_list_api_view(self): + return self.get( + viewname='rest_api:workflowstate-list', kwargs={ + 'pk': self.test_workflow.pk + } + ) + + def _request_test_workflow_state_edit_patch_api_view(self): + return self.patch( + viewname='rest_api:workflowstate-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'state_pk': self.test_workflow_state.pk + }, data={ + 'label': TEST_WORKFLOW_STATE_LABEL_EDITED + } + ) + + def _request_test_workflow_state_edit_put_api_view(self): + return self.put( + viewname='rest_api:workflowstate-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'state_pk': self.test_workflow_state.pk + }, data={ + 'label': TEST_WORKFLOW_STATE_LABEL_EDITED + } + ) + + +class WorkflowStatesAPIViewTestCase( + WorkflowStateAPIViewTestMixin, DocumentTestMixin, WorkflowTestMixin, + BaseAPITestCase +): + auto_upload_document = False + def test_workflow_state_create_view_no_access(self): self._create_test_workflow() @@ -455,7 +523,9 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes def test_workflow_state_create_view_with_access(self): self._create_test_workflow() - self.grant_access(permission=permission_workflow_edit, obj=self.test_workflow) + self.grant_access( + permission=permission_workflow_edit, obj=self.test_workflow + ) response = self._request_test_workflow_state_create_api_view() self.assertEqual(response.status_code, status.HTTP_201_CREATED) @@ -465,15 +535,6 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes self.test_workflow.states.first().label, TEST_WORKFLOW_STATE_LABEL ) - def _request_test_workflow_state_delete_api_view(self): - return self.delete( - viewname='rest_api:workflowstate-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'state_pk': self.test_workflow_state.pk - } - ) - def test_workflow_state_delete_view_no_access(self): self._create_test_workflow() self._create_test_workflow_state() @@ -498,15 +559,6 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes self.test_workflow.refresh_from_db() self.assertEqual(self.test_workflow.states.count(), 0) - def _request_test_workflow_state_detail_api_view(self): - return self.get( - viewname='rest_api:workflowstate-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'state_pk': self.test_workflow_state.pk - } - ) - def test_workflow_state_detail_view_no_access(self): self._create_test_workflow() self._create_test_workflow_state() @@ -530,13 +582,6 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes response.data['label'], TEST_WORKFLOW_STATE_LABEL ) - def _request_test_workflow_state_list_api_view(self): - return self.get( - viewname='rest_api:workflowstate-list', kwargs={ - 'pk': self.test_workflow.pk - } - ) - def test_workflow_state_list_view_no_access(self): self._create_test_workflow() self._create_test_workflow_state() @@ -557,17 +602,6 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes response.data['results'][0]['label'], TEST_WORKFLOW_STATE_LABEL ) - def _request_test_workflow_state_edit_patch_api_view(self): - return self.patch( - viewname='rest_api:workflowstate-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'state_pk': self.test_workflow_state.pk - }, data={ - 'label': TEST_WORKFLOW_STATE_LABEL_EDITED - } - ) - def test_workflow_state_edit_view_via_patch_no_access(self): self._create_test_workflow() self._create_test_workflow_state() @@ -594,17 +628,6 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes self.test_workflow_state.label, TEST_WORKFLOW_STATE_LABEL_EDITED ) - def _request_test_workflow_state_edit_put_api_view(self): - return self.put( - viewname='rest_api:workflowstate-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'state_pk': self.test_workflow_state.pk - }, data={ - 'label': TEST_WORKFLOW_STATE_LABEL_EDITED - } - ) - def test_workflow_state_edit_view_via_put_no_access(self): self._create_test_workflow() self._create_test_workflow_state() @@ -632,9 +655,7 @@ class WorkflowStatesAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITes ) -class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase): - auto_upload_document = False - +class WorkflowTransitionAPIViewTestMixin(object): def _request_test_workflow_transition_create_api_view(self): return self.post( viewname='rest_api:workflowtransition-list', @@ -645,6 +666,63 @@ class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseA } ) + def _request_test_workflow_transition_delete_api_view(self): + return self.delete( + viewname='rest_api:workflowtransition-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'transition_pk': self.test_workflow_transition.pk + } + ) + + def _request_test_workflow_transition_detail_api_view(self): + return self.get( + viewname='rest_api:workflowtransition-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'transition_pk': self.test_workflow_transition.pk + } + ) + + def _request_test_workflow_transition_list_api_view(self): + return self.get( + viewname='rest_api:workflowtransition-list', + kwargs={'pk': self.test_workflow.pk} + ) + + def _request_test_workflow_transition_edit_patch_api_view(self): + return self.patch( + viewname='rest_api:workflowtransition-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'transition_pk': self.test_workflow_transition.pk + }, data={ + 'label': TEST_WORKFLOW_TRANSITION_LABEL_EDITED, + 'origin_state_pk': self.test_workflow_state_2.pk, + 'destination_state_pk': self.test_workflow_state_1.pk, + } + ) + + def _request_test_workflow_transition_edit_put_api_view_via(self): + return self.put( + viewname='rest_api:workflowtransition-detail', + kwargs={ + 'pk': self.test_workflow.pk, + 'transition_pk': self.test_workflow_transition.pk + }, data={ + 'label': TEST_WORKFLOW_TRANSITION_LABEL_EDITED, + 'origin_state_pk': self.test_workflow_state_2.pk, + 'destination_state_pk': self.test_workflow_state_1.pk, + } + ) + + +class WorkflowTransitionsAPIViewTestCase( + WorkflowTransitionAPIViewTestMixin, DocumentTestMixin, WorkflowTestMixin, + BaseAPITestCase +): + auto_upload_document = False + def test_workflow_transition_create_view_no_access(self): self._create_test_workflow() self._create_test_workflow_states() @@ -672,15 +750,6 @@ class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseA TEST_WORKFLOW_TRANSITION_LABEL ) - def _request_test_workflow_transition_delete_api_view(self): - return self.delete( - viewname='rest_api:workflowtransition-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'transition_pk': self.test_workflow_transition.pk - } - ) - def test_workflow_transition_delete_view_no_access(self): self._create_test_workflow() self._create_test_workflow_states() @@ -707,15 +776,6 @@ class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseA self.test_workflow.refresh_from_db() self.assertEqual(self.test_workflow.transitions.count(), 0) - def _request_test_workflow_transition_detail_api_view(self): - return self.get( - viewname='rest_api:workflowtransition-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'transition_pk': self.test_workflow_transition.pk - } - ) - def test_workflow_transition_detail_view_no_access(self): self._create_test_workflow() self._create_test_workflow_states() @@ -740,12 +800,6 @@ class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseA response.data['label'], TEST_WORKFLOW_TRANSITION_LABEL ) - def _request_test_workflow_transition_list_api_view(self): - return self.get( - viewname='rest_api:workflowtransition-list', - kwargs={'pk': self.test_workflow.pk} - ) - def test_workflow_transition_list_view_no_access(self): self._create_test_workflow() self._create_test_workflow_states() @@ -771,19 +825,6 @@ class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseA TEST_WORKFLOW_TRANSITION_LABEL ) - def _request_test_workflow_transition_edit_patch_api_view(self): - return self.patch( - viewname='rest_api:workflowtransition-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'transition_pk': self.test_workflow_transition.pk - }, data={ - 'label': TEST_WORKFLOW_TRANSITION_LABEL_EDITED, - 'origin_state_pk': self.test_workflow_state_2.pk, - 'destination_state_pk': self.test_workflow_state_1.pk, - } - ) - def test_workflow_transition_edit_view_via_patch_no_access(self): self._create_test_workflow() self._create_test_workflow_states() @@ -832,19 +873,6 @@ class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseA self.test_workflow_state_1 ) - def _request_test_workflow_transition_edit_put_api_view_via(self): - return self.put( - viewname='rest_api:workflowtransition-detail', - kwargs={ - 'pk': self.test_workflow.pk, - 'transition_pk': self.test_workflow_transition.pk - }, data={ - 'label': TEST_WORKFLOW_TRANSITION_LABEL_EDITED, - 'origin_state_pk': self.test_workflow_state_2.pk, - 'destination_state_pk': self.test_workflow_state_1.pk, - } - ) - def test_workflow_transition_edit_view_via_put_no_access(self): self._create_test_workflow() self._create_test_workflow_states() @@ -893,11 +921,7 @@ class WorkflowTransitionsAPITestCase(DocumentTestMixin, WorkflowTestMixin, BaseA ) -class DocumentWorkflowsAPITestCase( - DocumentTestMixin, WorkflowTestMixin, BaseAPITestCase -): - auto_upload_document = False - +class DocumentWorkflowAPIViewTestMixin(object): def _request_test_workflow_instance_detail_api_view(self): return self.get( viewname='rest_api:workflowinstance-detail', kwargs={ @@ -906,6 +930,35 @@ class DocumentWorkflowsAPITestCase( } ) + def _request_test_workflow_instance_list_api_view(self): + return self.get( + viewname='rest_api:workflowinstance-list', + kwargs={'pk': self.test_document.pk} + ) + + def _request_test_workflow_instance_log_entry_create_api_view(self, workflow_instance): + return self.post( + viewname='rest_api:workflowinstancelogentry-list', kwargs={ + 'pk': self.test_document.pk, + 'workflow_pk': workflow_instance.pk + }, data={'transition_pk': self.test_workflow_transition.pk} + ) + + def _request_test_workflow_instance_log_entry_list_api_view(self): + return self.get( + viewname='rest_api:workflowinstancelogentry-list', kwargs={ + 'pk': self.test_document.pk, + 'workflow_pk': self.test_document.workflows.first().pk + } + ) + + +class DocumentWorkflowsAPIViewTestCase( + DocumentWorkflowAPIViewTestMixin, DocumentTestMixin, WorkflowTestMixin, + BaseAPITestCase +): + auto_upload_document = False + def test_workflow_instance_detail_view_no_access(self): self._create_test_workflow(add_document_type=True) self._create_test_workflow_states() @@ -964,12 +1017,6 @@ class DocumentWorkflowsAPITestCase( TEST_WORKFLOW_LABEL ) - def _request_test_workflow_instance_list_api_view(self): - return self.get( - viewname='rest_api:workflowinstance-list', - kwargs={'pk': self.test_document.pk} - ) - def test_workflow_instance_list_view_no_access(self): self._create_test_workflow(add_document_type=True) self._create_test_workflow_states() @@ -1028,14 +1075,6 @@ class DocumentWorkflowsAPITestCase( TEST_WORKFLOW_LABEL ) - def _request_test_workflow_instance_log_entry_create_api_view(self, workflow_instance): - return self.post( - viewname='rest_api:workflowinstancelogentry-list', kwargs={ - 'pk': self.test_document.pk, - 'workflow_pk': workflow_instance.pk - }, data={'transition_pk': self.test_workflow_transition.pk} - ) - def test_workflow_instance_log_entries_create_view_no_access(self): self._create_test_workflow(add_document_type=True) self._create_test_workflow_states() @@ -1074,14 +1113,6 @@ class DocumentWorkflowsAPITestCase( TEST_WORKFLOW_TRANSITION_LABEL ) - def _request_test_workflow_instance_log_entry_list_api_view(self): - return self.get( - viewname='rest_api:workflowinstancelogentry-list', kwargs={ - 'pk': self.test_document.pk, - 'workflow_pk': self.test_document.workflows.first().pk - } - ) - def test_workflow_instance_log_entries_list_view_no_access(self): self._create_test_workflow(add_document_type=True) self._create_test_workflow_states()