Fix document cabinet list API view
Thanks for forum user "jere" for the report. Forum topic 1039. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
@@ -9,6 +9,8 @@
|
||||
file_metadata app.
|
||||
* Add internal_name field to workflow serializer.
|
||||
Fixes workflow API creation view.
|
||||
* Fix document cabinet list view. Thanks for forum user
|
||||
"jere" for the report. Forum topic 1039.
|
||||
|
||||
3.2.6 (2019-07-10)
|
||||
==================
|
||||
|
||||
@@ -16,6 +16,8 @@ Changes
|
||||
file_metadata app.
|
||||
- Add internal_name field to workflow serializer.
|
||||
Fixes workflow API creation view.
|
||||
- Fix document cabinet list view. Thanks for forum user
|
||||
"jere" for the report. Forum topic 1039.
|
||||
|
||||
Removals
|
||||
--------
|
||||
|
||||
@@ -39,7 +39,7 @@ class APIDocumentCabinetListView(generics.ListAPIView):
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
queryset = document.get_cabinets()
|
||||
queryset = document.document_cabinets()
|
||||
return queryset
|
||||
|
||||
|
||||
|
||||
@@ -149,3 +149,12 @@ class CabinetViewTestMixin(object):
|
||||
'cabinets': self.test_cabinet.pk
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class DocumentCabinetAPIViewTestMixin(object):
|
||||
def _request_test_document_cabinet_list_view(self):
|
||||
return self.get(
|
||||
viewname='rest_api:document-cabinet-list', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
@@ -15,10 +15,14 @@ from ..permissions import (
|
||||
permission_cabinet_remove_document, permission_cabinet_view
|
||||
)
|
||||
|
||||
from .mixins import CabinetAPIViewTestMixin, CabinetTestMixin
|
||||
from .mixins import (
|
||||
CabinetAPIViewTestMixin, CabinetTestMixin, DocumentCabinetAPIViewTestMixin
|
||||
)
|
||||
|
||||
|
||||
class CabinetAPITestCase(CabinetAPIViewTestMixin, CabinetTestMixin, BaseAPITestCase):
|
||||
class CabinetAPITestCase(
|
||||
CabinetAPIViewTestMixin, CabinetTestMixin, BaseAPITestCase
|
||||
):
|
||||
def test_cabinet_create_api_view_no_permission(self):
|
||||
cabinet_count = Cabinet.objects.count()
|
||||
|
||||
@@ -135,7 +139,9 @@ class CabinetAPITestCase(CabinetAPIViewTestMixin, CabinetTestMixin, BaseAPITestC
|
||||
)
|
||||
|
||||
|
||||
class CabinetDocumentAPITestCase(CabinetAPIViewTestMixin, CabinetTestMixin, DocumentTestMixin, BaseAPITestCase):
|
||||
class CabinetDocumentAPITestCase(
|
||||
CabinetAPIViewTestMixin, CabinetTestMixin, DocumentTestMixin, BaseAPITestCase
|
||||
):
|
||||
auto_upload_document = False
|
||||
|
||||
def test_cabinet_create_with_single_document(self):
|
||||
@@ -288,3 +294,56 @@ class CabinetDocumentAPITestCase(CabinetAPIViewTestMixin, CabinetTestMixin, Docu
|
||||
qs=self.test_cabinet.documents.all(),
|
||||
values=map(repr, self.test_documents)
|
||||
)
|
||||
|
||||
|
||||
class DocumentCabinetAPITestCase(
|
||||
CabinetAPIViewTestMixin, CabinetTestMixin,
|
||||
DocumentCabinetAPIViewTestMixin, DocumentTestMixin, BaseAPITestCase
|
||||
):
|
||||
auto_upload_document = False
|
||||
|
||||
def setUp(self):
|
||||
super(DocumentCabinetAPITestCase, self).setUp()
|
||||
self.upload_document()
|
||||
self._create_test_cabinet()
|
||||
self.test_cabinet.documents.add(self.test_document)
|
||||
|
||||
def test_document_cabinet_list_view_no_permission(self):
|
||||
response = self._request_test_document_cabinet_list_view()
|
||||
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
|
||||
self.assertTrue('count' not in response.data)
|
||||
|
||||
def test_document_cabinet_list_view_with_document_access(self):
|
||||
self.grant_access(
|
||||
obj=self.test_document, permission=permission_document_view,
|
||||
)
|
||||
|
||||
response = self._request_test_document_cabinet_list_view()
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.data['count'], 0)
|
||||
|
||||
def test_document_cabinet_list_view_with_cabinet_access(self):
|
||||
self.grant_access(
|
||||
obj=self.test_cabinet, permission=permission_cabinet_view,
|
||||
)
|
||||
|
||||
response = self._request_test_document_cabinet_list_view()
|
||||
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
|
||||
self.assertTrue('count' not in response.data)
|
||||
|
||||
def test_document_cabinet_list_view_with_full_access(self):
|
||||
self.grant_access(
|
||||
obj=self.test_document, permission=permission_document_view,
|
||||
)
|
||||
self.grant_access(
|
||||
obj=self.test_cabinet, permission=permission_cabinet_view,
|
||||
)
|
||||
|
||||
response = self._request_test_document_cabinet_list_view()
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
response.data['count'], Cabinet.objects.all().count()
|
||||
)
|
||||
self.assertEqual(
|
||||
response.data['results'][0]['id'], self.test_cabinet.pk
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user