Add document trashed event
Closes GitLab issue #608. Thanks to Vikas Kedia (@vikaskedia) for the report. Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
@@ -268,3 +268,50 @@ class DocumentViewTestMixin(object):
|
||||
|
||||
def _request_empty_trash_view(self):
|
||||
return self.post(viewname='documents:trash_can_empty')
|
||||
|
||||
|
||||
class TrashedDocumentViewTestMixin(object):
|
||||
def _request_document_trash_get_view(self):
|
||||
return self.get(
|
||||
viewname='documents:document_trash', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_document_trash_post_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_trash', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_restore_get_view(self):
|
||||
return self.get(
|
||||
viewname='documents:document_restore', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_restore_post_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_restore', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_delete_get_view(self):
|
||||
return self.get(
|
||||
viewname='documents:document_delete', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_delete_post_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_delete', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_list_view(self):
|
||||
return self.get(viewname='documents:document_list_deleted')
|
||||
|
||||
@@ -3,13 +3,16 @@ from __future__ import unicode_literals
|
||||
from actstream.models import Action
|
||||
from django_downloadview import assert_download_response
|
||||
|
||||
from ..events import event_document_download, event_document_view
|
||||
from ..events import (
|
||||
event_document_download, event_document_trashed, event_document_view
|
||||
)
|
||||
from ..permissions import (
|
||||
permission_document_download, permission_document_view
|
||||
permission_document_download, permission_document_trash,
|
||||
permission_document_view
|
||||
)
|
||||
|
||||
from .base import GenericDocumentViewTestCase
|
||||
|
||||
from .mixins import TrashedDocumentViewTestMixin
|
||||
|
||||
TEST_DOCUMENT_TYPE_EDITED_LABEL = 'test document type edited label'
|
||||
TEST_DOCUMENT_TYPE_2_LABEL = 'test document type 2 label'
|
||||
@@ -32,21 +35,22 @@ class DocumentEventsTestMixin(object):
|
||||
|
||||
|
||||
class DocumentEventsTestCase(
|
||||
DocumentEventsTestMixin, GenericDocumentViewTestCase
|
||||
DocumentEventsTestMixin, TrashedDocumentViewTestMixin,
|
||||
GenericDocumentViewTestCase
|
||||
):
|
||||
def test_document_download_event_no_permissions(self):
|
||||
def setUp(self):
|
||||
super(DocumentEventsTestCase, self).setUp()
|
||||
Action.objects.all().delete()
|
||||
|
||||
def test_document_download_event_no_permission(self):
|
||||
response = self._request_test_document_download_view()
|
||||
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.assertEqual(list(Action.objects.any(obj=self.test_document)), [])
|
||||
|
||||
def test_document_download_event_with_permissions(self):
|
||||
def test_document_download_event_with_access(self):
|
||||
self.expected_content_types = ('image/png; charset=utf-8',)
|
||||
|
||||
Action.objects.all().delete()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_document, permission=permission_document_download
|
||||
)
|
||||
@@ -66,17 +70,13 @@ class DocumentEventsTestCase(
|
||||
self.assertEqual(event.target, self.test_document)
|
||||
self.assertEqual(event.verb, event_document_download.id)
|
||||
|
||||
def test_document_view_event_no_permissions(self):
|
||||
Action.objects.all().delete()
|
||||
|
||||
def test_document_view_event_no_permission(self):
|
||||
response = self._request_test_document_preview_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.assertEqual(list(Action.objects.any(obj=self.test_document)), [])
|
||||
|
||||
def test_document_view_event_with_permissions(self):
|
||||
Action.objects.all().delete()
|
||||
|
||||
def test_document_view_event_with_access(self):
|
||||
self.grant_access(
|
||||
obj=self.test_document, permission=permission_document_view
|
||||
)
|
||||
@@ -88,3 +88,22 @@ class DocumentEventsTestCase(
|
||||
self.assertEqual(event.actor, self._test_case_user)
|
||||
self.assertEqual(event.target, self.test_document)
|
||||
self.assertEqual(event.verb, event_document_view.id)
|
||||
|
||||
def test_document_trashed_view_event_no_permission(self):
|
||||
response = self._request_document_trash_post_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.assertEqual(list(Action.objects.any(obj=self.test_document)), [])
|
||||
|
||||
def test_document_trashed_view_event_with_access(self):
|
||||
self.grant_access(
|
||||
obj=self.test_document, permission=permission_document_trash
|
||||
)
|
||||
|
||||
response = self._request_document_trash_post_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
event = Action.objects.any(obj=self.test_document).first()
|
||||
self.assertEqual(event.actor, self._test_case_user)
|
||||
self.assertEqual(event.target, self.test_document)
|
||||
self.assertEqual(event.verb, event_document_trashed.id)
|
||||
|
||||
@@ -7,57 +7,11 @@ from ..permissions import (
|
||||
)
|
||||
|
||||
from .base import GenericDocumentViewTestCase
|
||||
from .mixins import TrashedDocumentViewTestMixin
|
||||
|
||||
|
||||
class TrashedDocumentTestMixin(object):
|
||||
def _request_document_trash_get_view(self):
|
||||
return self.get(
|
||||
viewname='documents:document_trash', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_document_trash_post_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_trash', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_restore_get_view(self):
|
||||
return self.get(
|
||||
viewname='documents:document_restore', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_restore_post_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_restore', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_delete_get_view(self):
|
||||
return self.get(
|
||||
viewname='documents:document_delete', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_delete_post_view(self):
|
||||
return self.post(
|
||||
viewname='documents:document_delete', kwargs={
|
||||
'pk': self.test_document.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_trashed_document_list_view(self):
|
||||
return self.get(viewname='documents:document_list_deleted')
|
||||
|
||||
|
||||
class TrashedDocumentTestCase(
|
||||
TrashedDocumentTestMixin, GenericDocumentViewTestCase
|
||||
class TrashedDocumentViewTestCase(
|
||||
TrashedDocumentViewTestMixin, GenericDocumentViewTestCase
|
||||
):
|
||||
def test_document_trash_get_view_no_permissions(self):
|
||||
document_count = Document.objects.count()
|
||||
|
||||
Reference in New Issue
Block a user