Update documents app
Rename the DeletedDocument proxy model to a TrashedDocument. Rename the deleted_document views to trashed_document. Rename the document and deleted_document URL parameters to trashed_document. Update URL parameters to the '_id' form. Add keyword arguments. Update use of .filter_by_access(). Enclose trashed document restore method in a transaction. Sort arguments. Update app for compliance with MERCs 5 and 6. Add document page view tests. Add favorite document view tests. Movernize tests. Replace use of urlencode with furl. Update views to use ExternalObjectMixin. Refactor the document and version download views. Rename the DocumentDocumentTypeEditView to DocumentChangeTypeView. Move the trashed document views to their own module. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
@@ -1,56 +1,26 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from ..models import DeletedDocument, Document
|
||||
from ..models import Document, TrashedDocument
|
||||
from ..permissions import (
|
||||
permission_document_delete, permission_document_restore,
|
||||
permission_document_trash, permission_document_view
|
||||
permission_document_trash, permission_document_view,
|
||||
permission_empty_trash, permission_trashed_document_delete,
|
||||
permission_trashed_document_restore
|
||||
)
|
||||
|
||||
from .base import GenericDocumentViewTestCase
|
||||
|
||||
|
||||
class DeletedDocumentTestCase(GenericDocumentViewTestCase):
|
||||
def setUp(self):
|
||||
super(DeletedDocumentTestCase, self).setUp()
|
||||
self.login_user()
|
||||
|
||||
def _request_document_restore_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_restore',
|
||||
kwargs={'document_pk': self.document.pk}
|
||||
)
|
||||
|
||||
def test_document_restore_view_no_permission(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
|
||||
response = self._request_document_restore_view()
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 1)
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
|
||||
def test_document_restore_view_with_access(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_document_restore
|
||||
)
|
||||
response = self._request_document_restore_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 0)
|
||||
self.assertEqual(Document.objects.count(), 1)
|
||||
|
||||
class TrashedDocumentTestCase(GenericDocumentViewTestCase):
|
||||
def _request_document_trash_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_trash',
|
||||
kwargs={'document_pk': self.document.pk}
|
||||
kwargs={'document_id': self.document.pk}
|
||||
)
|
||||
|
||||
def test_document_trash_no_permissions(self):
|
||||
response = self._request_document_trash_view()
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 0)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 0)
|
||||
self.assertEqual(Document.objects.count(), 1)
|
||||
|
||||
def test_document_trash_with_access(self):
|
||||
@@ -60,58 +30,107 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
response = self._request_document_trash_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 1)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
|
||||
def _request_document_delete_view(self):
|
||||
def _request_trashed_document_restore_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_delete',
|
||||
kwargs={'document_pk': self.document.pk}
|
||||
viewname='documents:trashed_document_restore',
|
||||
kwargs={'trashed_document_id': self.document.pk}
|
||||
)
|
||||
|
||||
def test_document_delete_no_permissions(self):
|
||||
def test_trashed_document_restore_view_no_permission(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 1)
|
||||
|
||||
response = self._request_document_delete_view()
|
||||
self.assertEqual(response.status_code, 403)
|
||||
response = self._request_trashed_document_restore_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 1)
|
||||
|
||||
def test_document_delete_with_access(self):
|
||||
def test_trashed_document_restore_view_with_access(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 1)
|
||||
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_document_delete
|
||||
obj=self.document, permission=permission_trashed_document_restore
|
||||
)
|
||||
response = self._request_trashed_document_restore_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 0)
|
||||
self.assertEqual(Document.objects.count(), 1)
|
||||
|
||||
def _request_trashed_document_delete_view(self):
|
||||
return self.post(
|
||||
viewname='documents:trashed_document_delete',
|
||||
kwargs={'trashed_document_id': self.document.pk}
|
||||
)
|
||||
|
||||
response = self._request_document_delete_view()
|
||||
def test_trashed_document_delete_no_permissions(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
|
||||
response = self._request_trashed_document_delete_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(DeletedDocument.objects.count(), 0)
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
|
||||
def test_trashed_document_delete_with_access(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_trashed_document_delete
|
||||
)
|
||||
|
||||
response = self._request_trashed_document_delete_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 0)
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
|
||||
def _request_document_list_deleted_view(self):
|
||||
return self.get(viewname='documents:document_list_deleted')
|
||||
def _request_trashed_document_list_view(self):
|
||||
return self.get(viewname='documents:trashed_document_list')
|
||||
|
||||
def test_deleted_document_list_view_no_permissions(self):
|
||||
def test_trashed_document_list_view_no_permissions(self):
|
||||
self.document.delete()
|
||||
|
||||
response = self._request_document_list_deleted_view()
|
||||
response = self._request_trashed_document_list_view()
|
||||
self.assertNotContains(
|
||||
response=response, text=self.document.label, status_code=200
|
||||
)
|
||||
|
||||
def test_deleted_document_list_view_with_access(self):
|
||||
def test_trashed_document_list_view_with_access(self):
|
||||
self.document.delete()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_document_view
|
||||
)
|
||||
response = self._request_document_list_deleted_view()
|
||||
response = self._request_trashed_document_list_view()
|
||||
|
||||
self.assertContains(
|
||||
response=response, text=self.document.label, status_code=200
|
||||
)
|
||||
|
||||
def _request_empty_trash_view(self):
|
||||
return self.post(viewname='documents:trash_can_empty')
|
||||
|
||||
def test_trash_can_empty_view_no_permission(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
|
||||
response = self._request_empty_trash_view()
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
|
||||
def test_trash_can_empty_view_with_permission(self):
|
||||
self.document.delete()
|
||||
self.assertEqual(TrashedDocument.objects.count(), 1)
|
||||
|
||||
self.grant_permission(permission=permission_empty_trash)
|
||||
|
||||
response = self._request_empty_trash_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(TrashedDocument.objects.count(), 0)
|
||||
self.assertEqual(Document.objects.count(), 0)
|
||||
|
||||
Reference in New Issue
Block a user