From 952380502be1be32e7cfe8b23cf5e9710e8f4434 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Fri, 15 Mar 2019 19:43:54 -0400 Subject: [PATCH] Complete basic workflow CRUD API views Signed-off-by: Roberto Rosario --- mayan/apps/document_states/serializers.py | 23 +++---- mayan/apps/document_states/tests/test_api.py | 65 +++++++------------- 2 files changed, 32 insertions(+), 56 deletions(-) diff --git a/mayan/apps/document_states/serializers.py b/mayan/apps/document_states/serializers.py index a8b7ccc917..10a526659f 100644 --- a/mayan/apps/document_states/serializers.py +++ b/mayan/apps/document_states/serializers.py @@ -26,24 +26,19 @@ class WorkflowSerializer(serializers.HyperlinkedModelSerializer): #transitions = WorkflowTransitionSerializer(many=True, required=False) class Meta: - #extra_kwargs = { - # 'url': {'view_name': 'rest_api:workflow-detail'}, - #} + extra_kwargs = { + 'url': { + 'lookup_url_kwarg': 'workflow_id', + 'view_name': 'rest_api:workflow-detail' + }, + } fields = ( - #'document_types_url', 'image_url', 'id', 'internal_name', 'label', - 'id', 'internal_name', 'label', - #'states', 'transitions', 'url' - #'states', 'transitions', 'url' + #'document_types_url', 'image_url', + 'id', 'internal_name', 'label', 'url' + #'states', 'transitions', ) model = Workflow - #def get_image_url(self, instance): - # return reverse( - # viewname='rest_api:workflow-image', kwargs={ - # 'workflow_pk': instance.pk - # }, request=self.context['request'], format=self.context['format'] - # ) - """ class NewWorkflowDocumentTypeSerializer(serializers.Serializer): diff --git a/mayan/apps/document_states/tests/test_api.py b/mayan/apps/document_states/tests/test_api.py index da103d3e19..4cfc55b4ff 100644 --- a/mayan/apps/document_states/tests/test_api.py +++ b/mayan/apps/document_states/tests/test_api.py @@ -93,10 +93,9 @@ class WorkflowAPIViewTestCase(BaseAPITestCase): self.assertEqual(Workflow.objects.count(), 0) - def _request_workflow_detail_api_view(self): return self.get( - api_viewname='rest_api:workflow-detail', kwargs={ + viewname='rest_api:workflow-detail', kwargs={ 'workflow_id': self.test_workflow.pk, } ) @@ -110,6 +109,7 @@ class WorkflowAPIViewTestCase(BaseAPITestCase): self.assertFalse('label' in response.json()) def test_workflow_detail_api_view_with_access(self): + self.expected_content_type = None self._create_test_workflow() self.grant_access( obj=self.test_workflow, permission=permission_workflow_view @@ -119,8 +119,6 @@ class WorkflowAPIViewTestCase(BaseAPITestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.json()['label'], self.test_workflow.label) - - def _request_workflow_edit_patch_api_view(self): return self.patch( viewname='rest_api:workflow-detail', kwargs={ @@ -199,6 +197,27 @@ class WorkflowAPIViewTestCase(BaseAPITestCase): self.test_workflow.internal_name, test_workflow.internal_name ) + def _request_workflow_list_api_view(self): + return self.get(viewname='rest_api:workflow-list') + + def test_workflow_list_api_view_no_permission(self): + self._create_test_workflow() + + response = self._request_workflow_list_api_view() + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data['count'], 0) + + def test_workflow_list_api_view_with_access(self): + self._create_test_workflow() + self.grant_access( + obj=self.test_workflow, permission=permission_workflow_view + ) + + response = self._request_workflow_list_api_view() + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual( + response.json()['results'][0]['label'], self.test_workflow.label + ) """ @@ -353,44 +372,6 @@ class WorkflowAPIViewTestCase(BaseAPITestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['results'][0]['label'], self.document_type.label) - def _request_workflow_list_view(self): - return self.get(viewname='rest_api:workflow-list') - - def test_workflow_list_view_no_access(self): - self._create_test_workflow() - response = self._request_workflow_list_view() - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data['count'], 0) - - def test_workflow_list_view_with_access(self): - self._create_test_workflow() - self.grant_access(permission=permission_workflow_view, obj=self.workflow) - response = self._request_workflow_list_view() - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data['results'][0]['label'], self.workflow.label) - - - def _request_workflow_edit_view_via_put(self): - return self.put( - viewname='rest_api:workflow-detail', args=(self.workflow.pk,), - data={'label': TEST_WORKFLOW_LABEL_EDITED} - ) - - def test_workflow_put_view_no_access(self): - self._create_test_workflow() - response = self._request_workflow_edit_view_via_put() - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) - self.workflow.refresh_from_db() - self.assertEqual(self.workflow.label, TEST_WORKFLOW_LABEL) - - def test_workflow_put_view_with_access(self): - self._create_test_workflow() - self.grant_access(permission=permission_workflow_edit, obj=self.workflow) - response = self._request_workflow_edit_view_via_put() - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.workflow.refresh_from_db() - self.assertEqual(self.workflow.label, TEST_WORKFLOW_LABEL_EDITED) - def _request_document_type_workflow_list_view(self): return self.get( viewname='rest_api:documenttype-workflow-list',