98 lines
3.2 KiB
Python
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
|
|
}
|
|
)
|