Update permission variable name from "permission_document_metadata_" to "permission_metadata_". Fix failing tests. Add test for same metadata type mixin. Split metadata add and remove test into test for GET and POST requests. Remove use of urlencode and instead use furl. Simplify view using self.action_count and self.action_id_list. Use ExternalObjectMixin to remove repeated code. Move the repeated code to test for all documents to be of the same type into its own mixin. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from actstream.models import Action
|
|
|
|
from mayan.apps.documents.tests import GenericDocumentViewTestCase
|
|
|
|
from ..events import (
|
|
event_metadata_type_created, event_metadata_type_edited
|
|
)
|
|
from ..models import MetadataType
|
|
from ..permissions import (
|
|
permission_metadata_type_create, permission_metadata_type_edit
|
|
)
|
|
|
|
from .mixins import MetadataTestsMixin
|
|
|
|
|
|
class MetadataTypeEventsTestCase(MetadataTestsMixin, GenericDocumentViewTestCase):
|
|
def test_metadata_type_create_event_no_permissions(self):
|
|
Action.objects.all().delete()
|
|
|
|
response = self._request_metadata_type_create_view()
|
|
self.assertEqual(response.status_code, 403)
|
|
self.assertEqual(Action.objects.count(), 0)
|
|
|
|
def test_metadata_type_create_event_with_permissions(self):
|
|
Action.objects.all().delete()
|
|
|
|
self.grant_permission(permission=permission_metadata_type_create)
|
|
|
|
response = self._request_metadata_type_create_view()
|
|
|
|
self.assertEqual(response.status_code, 302)
|
|
|
|
event = Action.objects.first()
|
|
|
|
metadata_type = MetadataType.objects.first()
|
|
|
|
self.assertEqual(event.verb, event_metadata_type_created.id)
|
|
self.assertEqual(event.target, metadata_type)
|
|
self.assertEqual(event.actor, self._test_case_user)
|
|
|
|
def test_metadata_type_edit_event_no_permissions(self):
|
|
self._create_metadata_type()
|
|
|
|
Action.objects.all().delete()
|
|
|
|
response = self._request_metadata_type_edit_view()
|
|
self.assertEqual(response.status_code, 404)
|
|
self.assertEqual(Action.objects.count(), 0)
|
|
|
|
def test_metadata_type_edit_event_with_access(self):
|
|
self._create_metadata_type()
|
|
|
|
Action.objects.all().delete()
|
|
|
|
self.grant_access(
|
|
permission=permission_metadata_type_edit, obj=self.metadata_type
|
|
)
|
|
|
|
response = self._request_metadata_type_edit_view()
|
|
|
|
self.assertEqual(response.status_code, 302)
|
|
|
|
event = Action.objects.first()
|
|
|
|
self.assertEqual(event.verb, event_metadata_type_edited.id)
|
|
self.assertEqual(event.target, self.metadata_type)
|
|
self.assertEqual(event.actor, self._test_case_user)
|