Finish view tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
@@ -13,10 +13,6 @@ from mayan.apps.common.html_widgets import TwoStateWidget
|
||||
from mayan.apps.common.menus import (
|
||||
menu_list_facet, menu_object, menu_secondary, menu_setup
|
||||
)
|
||||
from mayan.apps.events.classes import ModelEventType
|
||||
from mayan.apps.events.links import (
|
||||
link_events_for_object, link_object_event_types_user_subcriptions_list
|
||||
)
|
||||
from mayan.apps.navigation.classes import SourceColumn
|
||||
|
||||
from .control_codes import *
|
||||
@@ -70,6 +66,7 @@ class ControlCodesApp(MayanAppConfig):
|
||||
|
||||
ModelPermission.register(
|
||||
model=ControlSheet, permissions=(
|
||||
permission_acl_edit, permission_acl_view,
|
||||
permission_control_sheet_delete,
|
||||
permission_control_sheet_edit,
|
||||
permission_control_sheet_view
|
||||
|
||||
@@ -6,10 +6,8 @@ from PIL import Image
|
||||
from pyzbar.pyzbar import decode
|
||||
import qrcode
|
||||
|
||||
from django.apps import apps
|
||||
from django.db import transaction
|
||||
from django.utils.encoding import force_text, python_2_unicode_compatible
|
||||
from django.utils.translation import string_concat, ugettext_lazy as _
|
||||
from django.utils.translation import string_concat
|
||||
|
||||
from mayan.apps.common.serialization import yaml_dump, yaml_load
|
||||
from mayan.apps.documents.literals import DOCUMENT_IMAGE_TASK_TIMEOUT
|
||||
|
||||
@@ -7,7 +7,7 @@ icon_control_sheet = Icon(
|
||||
{'class': 'far fa-file ', 'transform': 'grow-4'},
|
||||
{'class': 'fas fa-barcode', 'transform': 'shrink-6'},
|
||||
],
|
||||
# shadow_class='far fa-file',
|
||||
#shadow_class='far fa-file',
|
||||
)
|
||||
icon_control_sheet_create = Icon(
|
||||
driver_name='fontawesome-layers', data=[
|
||||
|
||||
@@ -2,16 +2,12 @@ from __future__ import unicode_literals
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
from mayan.apps.documents.serializers import DocumentTypeSerializer
|
||||
from mayan.apps.rest_api.relations import (
|
||||
FilteredPrimaryKeyRelatedField, MultiKwargHyperlinkedIdentityField
|
||||
)
|
||||
from mayan.apps.rest_api.relations import MultiKwargHyperlinkedIdentityField
|
||||
|
||||
from .models import ControlSheet, ControlSheetCode
|
||||
|
||||
|
||||
class ControlSheetSerializer(serializers.HyperlinkedModelSerializer):
|
||||
#codes = ControlSheetCodeSerializer(many=True, required=False)
|
||||
code_list_url = serializers.HyperlinkedIdentityField(
|
||||
lookup_url_kwarg='control_sheet_id',
|
||||
view_name='rest_api:controlsheet-code-list'
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
TEST_CONTROL_SHEET_CODE_ARGUMENTS = '{"argument_1": ""}'
|
||||
TEST_CONTROL_SHEET_CODE_ARGUMENTS_EDITED = '{"argument_1": "edited"}'
|
||||
TEST_CONTROL_SHEET_LABEL = 'test control sheet'
|
||||
TEST_CONTROL_SHEET_LABEL_EDITED = 'test control sheet edited'
|
||||
|
||||
@@ -1,25 +1,40 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from ..classes import ControlCode
|
||||
from ..models import ControlSheet
|
||||
|
||||
from .literals import TEST_CONTROL_SHEET_LABEL
|
||||
from .literals import (
|
||||
TEST_CONTROL_SHEET_CODE_ARGUMENTS,
|
||||
TEST_CONTROL_SHEET_CODE_ARGUMENTS_EDITED, TEST_CONTROL_SHEET_LABEL,
|
||||
TEST_CONTROL_SHEET_LABEL_EDITED
|
||||
)
|
||||
|
||||
|
||||
class ControlCodeTest(ControlCode):
|
||||
arguments = ('argument_1',)
|
||||
label = 'Test'
|
||||
name = 'test'
|
||||
|
||||
def execute(self):
|
||||
pass
|
||||
|
||||
|
||||
class ControlSheetAPIViewTestMixin(object):
|
||||
def _request_test_tag_create_api_view(self):
|
||||
def _request_test_control_sheet_create_api_view(self):
|
||||
return self.post(
|
||||
viewname='rest_api:tag-list', data={
|
||||
'label': TEST_CONTROL_SHEET_LABEL, 'color': TEST_CONTROL_SHEET_COLOR
|
||||
viewname='rest_api:control_sheet-list', data={
|
||||
'label': TEST_CONTROL_SHEET_LABEL,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def _request_test_control_sheet_delete_api_view(self):
|
||||
return self.delete(
|
||||
viewname='rest_api:control_sheet-detail', kwargs={'pk': self.test_control_sheet.pk}
|
||||
viewname='rest_api:control_sheet-detail', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_control_sheet_edit_view(self, extra_data=None, verb='patch'):
|
||||
def _request_test_control_sheet_edit_api_view(self, extra_data=None, verb='patch'):
|
||||
data = {
|
||||
'label': TEST_CONTROL_SHEET_LABEL_EDITED,
|
||||
}
|
||||
@@ -41,6 +56,17 @@ class ControlSheetTestMixin(object):
|
||||
)
|
||||
|
||||
|
||||
class ControlSheetCodeTestMixin(object):
|
||||
_test_control_code_class = ControlCodeTest
|
||||
|
||||
def _create_test_control_sheet_code(self):
|
||||
self.test_control_sheet_code = self.test_control_sheet.codes.create(
|
||||
control_sheet=self.test_control_sheet,
|
||||
name=self._test_control_code_class.name,
|
||||
arguments=TEST_CONTROL_SHEET_CODE_ARGUMENTS
|
||||
)
|
||||
|
||||
|
||||
class ControlSheetViewTestMixin(object):
|
||||
def _request_test_control_sheet_create_view(self):
|
||||
return self.post(
|
||||
@@ -51,23 +77,94 @@ class ControlSheetViewTestMixin(object):
|
||||
|
||||
def _request_test_control_sheet_delete_view(self):
|
||||
return self.post(
|
||||
viewname='control_codes:control_sheet_delete',
|
||||
kwargs={'control_sheet_id': self.test_control_sheet.pk}
|
||||
viewname='control_codes:control_sheet_delete', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_delete_multiple_view(self):
|
||||
return self.post(
|
||||
viewname='control_codes:control_sheet_multiple_delete',
|
||||
data={'id_list': self.test_control_sheet.pk},
|
||||
viewname='control_codes:control_sheet_multiple_delete', data={
|
||||
'id_list': self.test_control_sheet.pk
|
||||
},
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_edit_view(self):
|
||||
return self.post(
|
||||
viewname='control_codes:control_sheet_edit',
|
||||
kwargs={'control_sheet_id': self.test_control_sheet.pk}, data={
|
||||
viewname='control_codes:control_sheet_edit', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk
|
||||
}, data={
|
||||
'label': TEST_CONTROL_SHEET_LABEL_EDITED,
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_list_view(self):
|
||||
return self.get(viewname='control_sheets:control_sheet_list')
|
||||
return self.get(viewname='control_codes:control_sheet_list')
|
||||
|
||||
def _request_test_control_sheet_preview_view(self):
|
||||
return self.get(
|
||||
viewname='control_codes:control_sheet_preview', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_print_view(self):
|
||||
return self.get(
|
||||
viewname='control_codes:control_sheet_print', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class ControlSheetCodeViewTestMixin(object):
|
||||
def _request_test_control_sheet_code_select_get_view(self):
|
||||
return self.get(
|
||||
viewname='control_codes:control_sheet_code_select', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk,
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_code_select_post_view(self):
|
||||
return self.post(
|
||||
viewname='control_codes:control_sheet_code_select', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk,
|
||||
}, data={'control_code_class_name': self._test_control_code_class.name}
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_code_create_view(self):
|
||||
return self.post(
|
||||
viewname='control_codes:control_sheet_code_create', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk,
|
||||
'control_code_class_name': self._test_control_code_class.name
|
||||
}
|
||||
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_code_delete_view(self):
|
||||
return self.post(
|
||||
viewname='control_codes:control_sheet_code_delete',
|
||||
kwargs={
|
||||
'control_sheet_id': self.test_control_sheet_code.control_sheet.pk,
|
||||
'control_sheet_code_id': self.test_control_sheet_code.pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_code_edit_view(self):
|
||||
return self.post(
|
||||
viewname='control_codes:control_sheet_code_edit', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet_code.control_sheet.pk,
|
||||
'control_sheet_code_id': self.test_control_sheet_code.pk
|
||||
}, data={
|
||||
'arguments': TEST_CONTROL_SHEET_CODE_ARGUMENTS_EDITED,
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_control_sheet_code_list_view(self):
|
||||
return self.get(
|
||||
viewname='control_codes:control_sheet_code_list', kwargs={
|
||||
'control_sheet_id': self.test_control_sheet.pk
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
ControlCode.register(control_code=ControlCodeTest)
|
||||
|
||||
@@ -1,36 +1,22 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.test import override_settings
|
||||
|
||||
from mayan.apps.common.tests.base import BaseTestCase
|
||||
from mayan.apps.documents.tests.base import GenericDocumentTestCase
|
||||
from mayan.apps.documents.tests.mixins import DocumentTestMixin
|
||||
|
||||
from ..classes import ControlCode
|
||||
from ..models import ControlSheet
|
||||
from .mixins import ControlSheetCodeTestMixin
|
||||
|
||||
TEST_CONTROL_CODE_DOCUMENT_PATH = '/tmp/test_control_code.png'
|
||||
|
||||
|
||||
class ControlCodeTest(ControlCode):
|
||||
arguments = ('argument_1',)
|
||||
label = 'Test'
|
||||
name = 'test'
|
||||
|
||||
def execute(self):
|
||||
pass
|
||||
|
||||
|
||||
ControlCode.register(control_code=ControlCodeTest)
|
||||
|
||||
|
||||
class ControlCodeTestCase(GenericDocumentTestCase):
|
||||
class ControlCodeTestCase(ControlSheetCodeTestMixin, GenericDocumentTestCase):
|
||||
auto_upload_document = False
|
||||
test_document_path = TEST_CONTROL_CODE_DOCUMENT_PATH
|
||||
|
||||
def test_control_code_detection(self):
|
||||
with open(TEST_CONTROL_CODE_DOCUMENT_PATH, mode='wb') as file_object:
|
||||
control_code = ControlCodeTest(argument_1='test argument value')
|
||||
control_code = self._test_control_code_class(
|
||||
argument_1='test argument value'
|
||||
)
|
||||
control_code.image.save(file_object)
|
||||
|
||||
self.upload_document()
|
||||
|
||||
@@ -1,66 +1,310 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.test import override_settings
|
||||
from mayan.apps.common.tests.base import GenericViewTestCase
|
||||
|
||||
from mayan.apps.common.tests.base import BaseTestCase, GenericViewTestCase
|
||||
from mayan.apps.documents.tests.base import GenericDocumentTestCase
|
||||
from mayan.apps.documents.tests.mixins import DocumentTestMixin
|
||||
|
||||
from ..classes import ControlCode
|
||||
from ..models import ControlSheet
|
||||
from ..models import ControlSheet, ControlSheetCode
|
||||
from ..permissions import (
|
||||
permission_control_sheet_create, permission_control_sheet_delete,
|
||||
permission_control_sheet_edit, permission_control_sheet_view
|
||||
)
|
||||
|
||||
from .mixins import ControlSheetTestMixin, ControlSheetViewTestMixin
|
||||
from .mixins import (
|
||||
ControlSheetCodeTestMixin, ControlSheetCodeViewTestMixin,
|
||||
ControlSheetTestMixin, ControlSheetViewTestMixin
|
||||
)
|
||||
|
||||
|
||||
class ControlSheetViewTestCase(
|
||||
ControlSheetTestMixin, ControlSheetViewTestMixin, GenericViewTestCase
|
||||
):
|
||||
test_model = ControlSheet
|
||||
test_permission_create = permission_control_sheet_create
|
||||
test_permission_delete = permission_control_sheet_delete
|
||||
_test_model = ControlSheet
|
||||
_test_permission_create = permission_control_sheet_create
|
||||
_test_permission_delete = permission_control_sheet_delete
|
||||
_test_permission_edit = permission_control_sheet_edit
|
||||
_test_permission_view = permission_control_sheet_view
|
||||
|
||||
def test_control_sheet_create_view_no_permissions(self):
|
||||
object_count = self.test_model.objects.count()
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_create_view()
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
self.assertEqual(self.test_model.objects.count(), object_count)
|
||||
self.assertEqual(self._test_model.objects.count(), object_count)
|
||||
|
||||
def test_control_sheet_create_view_with_permissions(self):
|
||||
self.grant_permission(permission=self.test_permission_create)
|
||||
self.grant_permission(permission=self._test_permission_create)
|
||||
|
||||
object_count = self.test_model.objects.count()
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_create_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.assertEqual(self.test_model.objects.count(), object_count + 1)
|
||||
self.assertEqual(self._test_model.objects.count(), object_count + 1)
|
||||
|
||||
def test_control_sheet_delete_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
object_count = self.test_model.objects.count()
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_delete_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.assertEqual(self.test_model.objects.count(), object_count)
|
||||
self.assertEqual(self._test_model.objects.count(), object_count)
|
||||
|
||||
def test_control_sheet_delete_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet, permission=self.test_permission_delete
|
||||
obj=self.test_control_sheet, permission=self._test_permission_delete
|
||||
)
|
||||
|
||||
object_count = self.test_model.objects.count()
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_delete_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.assertEqual(self.test_model.objects.count(), object_count - 1)
|
||||
self.assertEqual(self._test_model.objects.count(), object_count - 1)
|
||||
|
||||
def test_control_sheet_edit_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
control_sheet_label = self.test_control_sheet.label
|
||||
|
||||
response = self._request_test_control_sheet_edit_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.test_control_sheet.refresh_from_db()
|
||||
self.assertEqual(self.test_control_sheet.label, control_sheet_label)
|
||||
|
||||
def test_control_sheet_edit_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet, permission=self._test_permission_edit
|
||||
)
|
||||
|
||||
control_sheet_label = self.test_control_sheet.label
|
||||
|
||||
response = self._request_test_control_sheet_edit_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.test_control_sheet.refresh_from_db()
|
||||
self.assertNotEqual(self.test_control_sheet.label, control_sheet_label)
|
||||
|
||||
def test_control_sheet_list_view_no_permission(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
response = self._request_test_control_sheet_list_view()
|
||||
self.assertNotContains(
|
||||
response, text=self.test_control_sheet.label, status_code=200
|
||||
)
|
||||
|
||||
def test_control_sheet_list_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet,
|
||||
permission=self._test_permission_view
|
||||
)
|
||||
|
||||
response = self._request_test_control_sheet_list_view()
|
||||
self.assertContains(
|
||||
response, text=self.test_control_sheet.label, status_code=200
|
||||
)
|
||||
|
||||
def test_control_sheet_preview_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
response = self._request_test_control_sheet_preview_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_control_sheet_preview_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet, permission=self._test_permission_view
|
||||
)
|
||||
|
||||
response = self._request_test_control_sheet_preview_view()
|
||||
self.assertContains(
|
||||
response=response, text=self.test_control_sheet.label,
|
||||
status_code=200
|
||||
)
|
||||
|
||||
def test_control_sheet_print_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
response = self._request_test_control_sheet_print_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_control_sheet_print_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet, permission=self._test_permission_view
|
||||
)
|
||||
|
||||
response = self._request_test_control_sheet_print_view()
|
||||
self.assertContains(
|
||||
response=response, text=self.test_control_sheet.label,
|
||||
status_code=200
|
||||
)
|
||||
|
||||
|
||||
class ControlSheetCodeViewTestCase(
|
||||
ControlSheetTestMixin, ControlSheetCodeTestMixin,
|
||||
ControlSheetCodeViewTestMixin, GenericViewTestCase
|
||||
):
|
||||
_test_model = ControlSheetCode
|
||||
_test_permission_create = permission_control_sheet_create
|
||||
_test_permission_delete = permission_control_sheet_delete
|
||||
_test_permission_edit = permission_control_sheet_edit
|
||||
_test_permission_view = permission_control_sheet_view
|
||||
|
||||
def test_control_sheet_code_select_get_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
response = self._request_test_control_sheet_code_select_get_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_control_sheet_code_select_get_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet,
|
||||
permission=self._test_permission_edit
|
||||
)
|
||||
|
||||
response = self._request_test_control_sheet_code_select_get_view()
|
||||
|
||||
self.assertContains(
|
||||
response=response, text=self._test_control_code_class.label,
|
||||
status_code=200
|
||||
)
|
||||
|
||||
def test_control_sheet_code_select_post_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
response = self._request_test_control_sheet_code_select_post_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_control_sheet_code_select_post_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet,
|
||||
permission=self._test_permission_edit
|
||||
)
|
||||
|
||||
response = self._request_test_control_sheet_code_select_post_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
def test_control_sheet_code_create_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_code_create_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.assertEqual(self._test_model.objects.count(), object_count)
|
||||
|
||||
def test_control_sheet_code_create_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet,
|
||||
permission=self._test_permission_edit
|
||||
)
|
||||
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_code_create_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.assertEqual(self._test_model.objects.count(), object_count + 1)
|
||||
|
||||
def test_control_sheet_code_delete_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
self._create_test_control_sheet_code()
|
||||
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_code_delete_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.assertEqual(self._test_model.objects.count(), object_count)
|
||||
|
||||
def test_control_sheet_code_delete_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
self._create_test_control_sheet_code()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet,
|
||||
permission=self._test_permission_edit
|
||||
)
|
||||
|
||||
object_count = self._test_model.objects.count()
|
||||
|
||||
response = self._request_test_control_sheet_code_delete_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.assertEqual(self._test_model.objects.count(), object_count - 1)
|
||||
|
||||
def test_control_sheet_code_edit_view_no_permissions(self):
|
||||
self._create_test_control_sheet()
|
||||
self._create_test_control_sheet_code()
|
||||
|
||||
control_sheet_code_arguments = self.test_control_sheet_code.arguments
|
||||
|
||||
response = self._request_test_control_sheet_code_edit_view()
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
self.test_control_sheet_code.refresh_from_db()
|
||||
self.assertEqual(
|
||||
self.test_control_sheet_code.arguments,
|
||||
control_sheet_code_arguments
|
||||
)
|
||||
|
||||
def test_control_sheet_code_edit_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
self._create_test_control_sheet_code()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet,
|
||||
permission=self._test_permission_edit
|
||||
)
|
||||
|
||||
control_sheet_code_arguments = self.test_control_sheet_code.arguments
|
||||
|
||||
response = self._request_test_control_sheet_code_edit_view()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
self.test_control_sheet_code.refresh_from_db()
|
||||
self.assertNotEqual(
|
||||
self.test_control_sheet_code.arguments,
|
||||
control_sheet_code_arguments
|
||||
)
|
||||
|
||||
def test_control_sheet_code_list_view_no_permission(self):
|
||||
self._create_test_control_sheet()
|
||||
self._create_test_control_sheet_code()
|
||||
|
||||
response = self._request_test_control_sheet_code_list_view()
|
||||
self.assertNotContains(
|
||||
response, text=self.test_control_sheet_code.get_label(),
|
||||
status_code=404
|
||||
)
|
||||
|
||||
def test_control_sheet_code_list_view_with_access(self):
|
||||
self._create_test_control_sheet()
|
||||
self._create_test_control_sheet_code()
|
||||
self.grant_access(
|
||||
obj=self.test_control_sheet,
|
||||
permission=self._test_permission_view
|
||||
)
|
||||
|
||||
response = self._request_test_control_sheet_code_list_view()
|
||||
self.assertContains(
|
||||
response, text=self.test_control_sheet_code.get_label(),
|
||||
status_code=200
|
||||
)
|
||||
|
||||
@@ -163,7 +163,7 @@ class ControlSheetCodeCreate(ExternalObjectMixin, SingleObjectCreateView):
|
||||
class ControlSheetCodeDeleteView(ExternalObjectMixin, SingleObjectDeleteView):
|
||||
form_class = ControlSheetCodeForm
|
||||
external_object_class = ControlSheet
|
||||
external_object_permission = permission_control_sheet_delete
|
||||
external_object_permission = permission_control_sheet_edit
|
||||
external_object_pk_url_kwarg = 'control_sheet_id'
|
||||
pk_url_kwarg = 'control_sheet_code_id'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user