93 lines
3.2 KiB
Python
93 lines
3.2 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.contrib.contenttypes.models import ContentType
|
|
|
|
from documents.tests.test_views import GenericDocumentViewTestCase
|
|
|
|
from ..models import Transformation
|
|
from ..permissions import (
|
|
permission_transformation_create, permission_transformation_delete,
|
|
permission_transformation_view
|
|
)
|
|
|
|
from .literals import TEST_TRANSFORMATION_NAME, TEST_TRANSFORMATION_ARGUMENT
|
|
|
|
|
|
class TransformationViewsTestCase(GenericDocumentViewTestCase):
|
|
def setUp(self):
|
|
super(TransformationViewsTestCase, self).setUp()
|
|
self.login_user()
|
|
|
|
def _transformation_list_view(self):
|
|
return self.get(
|
|
'converter:transformation_list', kwargs={
|
|
'app_label': 'documents', 'model': 'document',
|
|
'object_id': self.document.pk
|
|
}
|
|
)
|
|
|
|
def test_transformation_list_view_no_permissions(self):
|
|
response = self._transformation_list_view()
|
|
|
|
self.assertEqual(response.status_code, 403)
|
|
|
|
def test_transformation_list_view_with_permissions(self):
|
|
self.grant(permission=permission_transformation_view)
|
|
response = self._transformation_list_view()
|
|
|
|
self.assertContains(
|
|
response, text=self.document.label, status_code=200
|
|
)
|
|
|
|
def _transformation_create_view(self):
|
|
return self.post(
|
|
'converter:transformation_create', kwargs={
|
|
'app_label': 'documents', 'model': 'document',
|
|
'object_id': self.document.pk
|
|
}, data={
|
|
'name': TEST_TRANSFORMATION_NAME,
|
|
'arguments': TEST_TRANSFORMATION_ARGUMENT
|
|
}
|
|
)
|
|
|
|
def test_transformation_create_view_no_permissions(self):
|
|
response = self._transformation_create_view()
|
|
|
|
self.assertEqual(response.status_code, 403)
|
|
self.assertEqual(Transformation.objects.count(), 0)
|
|
|
|
def test_transformation_create_view_with_permissions(self):
|
|
self.grant(permission=permission_transformation_create)
|
|
response = self._transformation_create_view()
|
|
|
|
self.assertEqual(response.status_code, 302)
|
|
self.assertEqual(Transformation.objects.count(), 1)
|
|
|
|
def _transformation_delete_view(self):
|
|
content_type = ContentType.objects.get_for_model(model=self.document)
|
|
|
|
transformation = Transformation.objects.create(
|
|
content_type=content_type, object_id=self.document.pk,
|
|
name=TEST_TRANSFORMATION_NAME,
|
|
arguments=TEST_TRANSFORMATION_ARGUMENT
|
|
)
|
|
|
|
return self.post(
|
|
'converter:transformation_delete', kwargs={
|
|
'pk': transformation.pk
|
|
}
|
|
)
|
|
|
|
def test_transformation_delete_view_no_permissions(self):
|
|
response = self._transformation_delete_view()
|
|
|
|
self.assertEqual(response.status_code, 403)
|
|
self.assertEqual(Transformation.objects.count(), 1)
|
|
|
|
def test_transformation_delete_view_with_permissions(self):
|
|
self.grant(permission=permission_transformation_delete)
|
|
response = self._transformation_delete_view()
|
|
|
|
self.assertEqual(response.status_code, 302)
|
|
self.assertEqual(Transformation.objects.count(), 0)
|