Files
mayan-edms/mayan/apps/converter/tests/mixins.py
Roberto Rosario ad37228466 Add converter layers, redactions app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 00:21:03 -04:00

98 lines
3.2 KiB
Python

from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType
from mayan.apps.acls.classes import ModelPermission
from mayan.apps.permissions.tests.mixins import PermissionTestMixin
from ..classes import Layer
from ..models import ObjectLayer
from .literals import (
TEST_TRANSFORMATION_NAME, TEST_TRANSFORMATION_ARGUMENT,
TEST_TRANSFORMATION_ARGUMENT_EDITED
)
class LayerTestMixin(PermissionTestMixin):
test_layer = Layer(
label='Test layer', name='test_layer', order=1000,
permissions={}
)
def setUp(self):
super(LayerTestMixin, self).setUp()
self._create_test_permission()
self.test_layer_permission = self.test_permission
ModelPermission.register(
model=self.test_document._meta.model, permissions=(
self.test_permission,
)
)
self.test_layer.permissions = {
'create': self.test_layer_permission,
'delete': self.test_layer_permission,
'edit': self.test_layer_permission,
'select': self.test_layer_permission,
'view': self.test_layer_permission,
}
Layer.invalidate_cache()
Layer.update()
class TransformationTestMixin(LayerTestMixin):
def _create_test_transformation(self):
content_type = ContentType.objects.get_for_model(model=self.test_document)
object_layer, created = ObjectLayer.objects.get_or_create(
content_type=content_type, object_id=self.test_document.pk,
stored_layer=self.test_layer.stored_layer
)
self.test_transformation = object_layer.transformations.create(
name=TEST_TRANSFORMATION_NAME,
arguments=TEST_TRANSFORMATION_ARGUMENT
)
class TransformationViewsTestMixin(object):
def _request_transformation_create_view(self):
return self.post(
viewname='converter:transformation_create', kwargs={
'app_label': 'documents', 'model': 'document',
'object_id': self.test_document.pk,
'layer_name': self.test_layer.name,
'transformation_name': TEST_TRANSFORMATION_NAME,
}, data={
'arguments': TEST_TRANSFORMATION_ARGUMENT
}
)
def _request_transformation_delete_view(self):
return self.post(
viewname='converter:transformation_delete', kwargs={
'layer_name': self.test_layer.name,
'pk': self.test_transformation.pk
}
)
def _request_transformation_edit_view(self):
return self.post(
viewname='converter:transformation_edit', kwargs={
'layer_name': self.test_layer.name,
'pk': self.test_transformation.pk
}, data={
'arguments': TEST_TRANSFORMATION_ARGUMENT_EDITED
}
)
def _request_transformation_list_view(self):
return self.get(
viewname='converter:transformation_list', kwargs={
'app_label': 'documents', 'model': 'document',
'object_id': self.test_document.pk,
'layer_name': self.test_layer.name
}
)