Code style cleanups

Sort arguments, methods. Add keyword arguments.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-04-25 05:06:56 -04:00
parent 4b4629ce2b
commit 1c5681c79d
26 changed files with 349 additions and 282 deletions

View File

@@ -2,12 +2,10 @@ from __future__ import absolute_import, unicode_literals
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404
from django.urls import reverse_lazy
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext
from mayan.apps.acls.models import AccessControlList
from mayan.apps.common.generics import (
FormView, MultipleObjectConfirmActionView, SingleObjectEditView,
SingleObjectListView

View File

@@ -1,5 +1,3 @@
from __future__ import unicode_literals
from .classes import * # NOQA
default_app_config = 'mayan.apps.mailer.apps.MailerApp'

View File

@@ -53,8 +53,8 @@ class MailerApp(MayanAppConfig):
app_label='documents', model_name='Document'
)
LogEntry = self.get_model('LogEntry')
UserMailer = self.get_model('UserMailer')
LogEntry = self.get_model(model_name='LogEntry')
UserMailer = self.get_model(model_name='UserMailer')
MailerBackend.initialize()
@@ -69,18 +69,19 @@ class MailerApp(MayanAppConfig):
source=LogEntry, label=_('Message'), attribute='message'
)
SourceColumn(
source=UserMailer, label=_('Label'), attribute='label'
attribute='label', is_identifier=True, is_sortable=True,
source=UserMailer
)
SourceColumn(
attribute='default', label=_('Default?'), source=UserMailer,
attribute='default', is_sortable=True, source=UserMailer,
widget=TwoStateWidget
)
SourceColumn(
attribute='enabled', label=_('Enabled?'), source=UserMailer,
attribute='enabled', is_sortable=True, source=UserMailer,
widget=TwoStateWidget
)
SourceColumn(
source=UserMailer, label=_('Label'), attribute='backend_label'
source=UserMailer, attribute='backend_label'
)
ModelPermission.register(

View File

@@ -4,8 +4,8 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.events import EventTypeNamespace
namespace = EventTypeNamespace(name='mailing', label=_('Mailing'))
namespace = EventTypeNamespace(label=_('Mailing'), name='mailing')
event_email_sent = namespace.add_event_type(
name='email_send', label=_('Email sent')
label=_('Email sent'), name='email_send'
)

View File

@@ -77,6 +77,8 @@ class UserMailer(models.Model):
"""
return self.get_backend().label
backend_label.short_description = _('Backend label')
def dumps(self, data):
"""
Serialize the backend configuration data.

View File

@@ -4,29 +4,29 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace(name='mailing', label=_('Mailing'))
namespace = PermissionNamespace(label=_('Mailing'), name='mailing')
permission_mailing_link = namespace.add_permission(
name='mail_link', label=_('Send document link via email')
label=_('Send document link via email'), name='mail_link'
)
permission_mailing_send_document = namespace.add_permission(
name='mail_document', label=_('Send document via email')
label=_('Send document via email'), name='mail_document'
)
permission_view_error_log = namespace.add_permission(
name='view_error_log', label=_('View system mailing error log')
label=_('View system mailing error log'), name='view_error_log'
)
permission_user_mailer_create = namespace.add_permission(
name='user_mailer_create', label=_('Create a mailing profile')
label=_('Create a mailing profile'), name='user_mailer_create'
)
permission_user_mailer_delete = namespace.add_permission(
name='user_mailer_delete', label=_('Delete a mailing profile')
label=_('Delete a mailing profile'), name='user_mailer_delete'
)
permission_user_mailer_edit = namespace.add_permission(
name='user_mailer_edit', label=_('Edit a mailing profile')
label=_('Edit a mailing profile'), name='user_mailer_edit'
)
permission_user_mailer_view = namespace.add_permission(
name='user_mailer_view', label=_('View a mailing profile')
label=_('View a mailing profile'), name='user_mailer_view'
)
permission_user_mailer_use = namespace.add_permission(
name='user_mailer_use', label=_('Use a mailing profile')
label=_('Use a mailing profile'), name='user_mailer_use'
)

View File

@@ -4,10 +4,8 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.task_manager.classes import CeleryQueue
queue_mailing = CeleryQueue(
name='mailing', label=_('Mailing')
)
queue_mailing = CeleryQueue(label=_('Mailing'), name='mailing')
queue_mailing.add_task_type(
name='mayan.apps.mailer.tasks.task_send_document',
label=_('Send document')
label=_('Send document'),
name='mayan.apps.mailer.tasks.task_send_document'
)

View File

@@ -8,7 +8,7 @@ from .literals import (
DEFAULT_DOCUMENT_BODY_TEMPLATE, DEFAULT_LINK_BODY_TEMPLATE
)
namespace = Namespace(name='mailer', label=_('Mailing'))
namespace = Namespace(label=_('Mailing'), name='mailer')
setting_link_subject_template = namespace.add_setting(
default=_('Link for document: {{ document }}'),

View File

@@ -124,7 +124,7 @@ class UserMailerBackendSelectionView(FormView):
def form_valid(self, form):
backend = form.cleaned_data['backend']
return HttpResponseRedirect(
reverse(
redirect_to=reverse(
viewname='mailer:user_mailer_create', kwargs={
'class_path': backend
}
@@ -170,7 +170,7 @@ class UserMailingCreateView(SingleObjectDynamicFormCreateView):
class UserMailingDeleteView(SingleObjectDeleteView):
model = UserMailer
object_permission = permission_user_mailer_delete
post_action_redirect = reverse_lazy('mailer:user_mailer_list')
post_action_redirect = reverse_lazy(viewname='mailer:user_mailer_list')
def get_extra_context(self):
return {

View File

@@ -71,14 +71,14 @@ class Statistic(object):
slug__in=queryset.values_list('name', flat=True)
).delete()
@classmethod
def get_all(cls):
return list(cls._registry.values())
@classmethod
def get(cls, slug):
return cls._registry[slug]
@classmethod
def get_all(cls):
return list(cls._registry.values())
@classmethod
def get_task_names(cls):
return [task.get_task_name() for task in cls.get_all()]
@@ -119,6 +119,19 @@ class Statistic(object):
def execute(self):
self.store_results(results=self.func())
def get_chart_data(self):
return self.renderer(data=self.get_results()).get_chart_data()
def get_results(self):
StatisticResult = apps.get_model(
app_label='mayan_statistics', model_name='StatisticResult'
)
try:
return StatisticResult.objects.get(slug=self.slug).get_data()
except StatisticResult.DoesNotExist:
return {'series': {}}
def get_task_name(self):
return 'mayan_statistics.task_execute_statistic_{}'.format(self.slug)
@@ -134,19 +147,6 @@ class Statistic(object):
)
statistic_result.store_data(data=results)
def get_results(self):
StatisticResult = apps.get_model(
app_label='mayan_statistics', model_name='StatisticResult'
)
try:
return StatisticResult.objects.get(slug=self.slug).get_data()
except StatisticResult.DoesNotExist:
return {'series': {}}
def get_chart_data(self):
return self.renderer(data=self.get_results()).get_chart_data()
class StatisticLineChart(Statistic):
renderer = ChartJSLine

View File

@@ -4,8 +4,8 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace(name='statistics', label=_('Statistics'))
namespace = PermissionNamespace(label=_('Statistics'), name='statistics')
permission_statistics_view = namespace.add_permission(
name='statistics_view', label=_('View statistics')
label=_('View statistics'), name='statistics_view'
)

View File

@@ -5,10 +5,10 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.task_manager.classes import CeleryQueue
queue_statistics = CeleryQueue(
name='statistics', label=_('Statistics'), transient=True
label=_('Statistics'), name='statistics', transient=True
)
queue_statistics.add_task_type(
name='mayan.apps.mayan_statistics.tasks.task_execute_statistic',
label=_('Execute statistic')
label=_('Execute statistic'),
name='mayan.apps.mayan_statistics.tasks.task_execute_statistic'
)

View File

@@ -7,38 +7,36 @@ from ..permissions import permission_statistics_view
class StatisticsViewTestCase(GenericViewTestCase):
def setUp(self):
super(StatisticsViewTestCase, self).setUp()
self.login_user()
def test_statistic_detail_view_no_permissions(self):
statistic = Statistic.get_all()[0]
response = self.get(
'statistics:statistic_detail', args=(statistic.slug,)
def _request_test_statistic_detail_view(self):
return self.get(
viewname='statistics:statistic_detail', kwargs={
'slug': self.statistic.slug
}
)
def test_statistic_detail_view_no_permissions(self):
self.statistic = Statistic.get_all()[0]
response = self._request_test_statistic_detail_view()
self.assertEqual(response.status_code, 403)
def test_statistic_detail_view_with_permissions(self):
self.grant_permission(permission=permission_statistics_view)
statistic = Statistic.get_all()[0]
response = self.get(
'statistics:statistic_detail', args=(statistic.slug,)
)
self.statistic = Statistic.get_all()[0]
response = self._request_test_statistic_detail_view()
self.assertEqual(response.status_code, 200)
def test_statistic_namespace_list_view_no_permissions(self):
response = self.get('statistics:namespace_list')
def _request_test_namespace_list_view(self):
return self.get(viewname='statistics:namespace_list')
def test_statistic_namespace_list_view_no_permissions(self):
response = self._request_test_namespace_list_view()
self.assertEqual(response.status_code, 403)
def test_statistic_namespace_list_view_with_permissions(self):
self.grant_permission(permission=permission_statistics_view)
response = self.get('statistics:namespace_list')
response = self._request_test_namespace_list_view()
self.assertEqual(response.status_code, 200)

View File

@@ -35,7 +35,7 @@ class NamespaceDetailView(SingleObjectListView):
}
def get_namespace(self):
return StatisticNamespace.get(self.kwargs['slug'])
return StatisticNamespace.get(slug=self.kwargs['slug'])
def get_object_list(self):
return self.get_namespace().statistics
@@ -45,13 +45,15 @@ class StatisticDetailView(SimpleView):
view_permission = permission_statistics_view
def get_extra_context(self):
obj = self.get_object()
return {
'chart_data': self.get_object().get_chart_data(),
'namespace': self.get_object().namespace,
'chart_data': obj.get_chart_data(),
'namespace': obj.namespace,
'navigation_object_list': ('namespace', 'object'),
'no_data': not self.get_object().get_results()['series'],
'object': self.get_object(),
'title': _('Results for: %s') % self.get_object(),
'no_data': not obj.get_results()['series'],
'object': obj,
'title': _('Results for: %s') % obj,
}
def get_object(self):
@@ -68,20 +70,21 @@ class StatisticQueueView(ConfirmView):
view_permission = permission_statistics_view
def get_extra_context(self):
obj = self.get_object()
return {
'namespace': self.get_object().namespace,
'object': self.get_object(),
'namespace': obj.namespace,
'object': obj,
# Translators: This text is asking users if they want to queue
# (to send to the queue) a statistic for it to be update ahead
# of schedule
'title': _(
'Queue statistic "%s" to be updated?'
) % self.get_object(),
) % obj,
}
def get_object(self):
try:
return Statistic.get(self.kwargs['slug'])
return Statistic.get(slug=self.kwargs['slug'])
except KeyError:
raise Http404(_('Statistic "%s" not found.') % self.kwargs['slug'])

View File

@@ -35,9 +35,9 @@ from .events import (
event_metadata_type_relationship
)
from .handlers import (
handler_index_document, post_document_type_metadata_type_add,
post_document_type_metadata_type_delete,
post_document_type_change_metadata
handler_index_document, handler_post_document_type_metadata_type_add,
handler_post_document_type_metadata_type_delete,
handler_post_document_type_change_metadata
)
from .links import (
link_metadata_add, link_metadata_edit, link_metadata_multiple_add,
@@ -86,27 +86,30 @@ class MetadataApp(MayanAppConfig):
app_label='documents', model_name='DocumentType'
)
DocumentMetadata = self.get_model('DocumentMetadata')
DocumentTypeMetadataType = self.get_model('DocumentTypeMetadataType')
MetadataType = self.get_model('MetadataType')
DocumentMetadata = self.get_model(model_name='DocumentMetadata')
DocumentTypeMetadataType = self.get_model(
model_name='DocumentTypeMetadataType'
)
MetadataType = self.get_model(model_name='MetadataType')
Document.add_to_class(
name='metadata_value_of', value=DocumentMetadataHelper.constructor
)
ModelAttribute(
Document, 'metadata_value_of',
model=Document, name='metadata_value_of',
description=_(
'Return the value of a specific document metadata'
),
)
)
ModelField(
Document, 'metadata__metadata_type__name',
model=Document, name='metadata__metadata_type__name',
label=_('Metadata type name')
)
ModelField(
Document, 'metadata__value', label=_('Metadata type value'),
model=Document, name='metadata__value',
label=_('Metadata type value')
)
ModelEventType.register(
@@ -255,31 +258,31 @@ class MetadataApp(MayanAppConfig):
)
post_delete.connect(
post_document_type_metadata_type_delete,
dispatch_uid='metadata_post_document_type_metadata_type_delete',
dispatch_uid='metadata_handler_post_document_type_metadata_type_delete',
receiver=handler_post_document_type_metadata_type_delete,
sender=DocumentTypeMetadataType
)
post_document_type_change.connect(
post_document_type_change_metadata,
dispatch_uid='metadata_post_document_type_change_metadata',
dispatch_uid='metadata_handler_post_document_type_change_metadata',
receiver=handler_post_document_type_change_metadata,
sender=Document
)
post_save.connect(
post_document_type_metadata_type_add,
dispatch_uid='metadata_post_document_type_metadata_type_add',
dispatch_uid='metadata_handler_post_document_type_metadata_type_add',
receiver=handler_post_document_type_metadata_type_add,
sender=DocumentTypeMetadataType
)
# Index updating
post_delete.connect(
handler_index_document,
dispatch_uid='metadata_handler_index_document_delete',
receiver=handler_index_document,
sender=DocumentMetadata
)
post_save.connect(
handler_index_document,
dispatch_uid='metadata_handler_index_document_save',
receiver=handler_index_document,
sender=DocumentMetadata
)

View File

@@ -4,31 +4,24 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.events import EventTypeNamespace
namespace = EventTypeNamespace(name='metadata', label=_('Metadata'))
namespace = EventTypeNamespace(label=_('Metadata'), name='metadata')
event_document_metadata_added = namespace.add_event_type(
name='document_metadata_added', label=_(
'Document metadata added'
)
label=_('Document metadata added'), name='document_metadata_added'
)
event_document_metadata_edited = namespace.add_event_type(
name='document_metadata_edited', label=_(
'Document metadata edited'
)
label=_('Document metadata edited'), name='document_metadata_edited'
)
event_document_metadata_removed = namespace.add_event_type(
name='document_metadata_removed', label=_(
'Document metadata removed'
)
label=_('Document metadata removed'), name='document_metadata_removed'
)
event_metadata_type_created = namespace.add_event_type(
name='metadata_type_created', label=_('Metadata type created')
label=_('Metadata type created'), name='metadata_type_created'
)
event_metadata_type_edited = namespace.add_event_type(
name='metadata_type_edited', label=_('Metadata type edited')
label=_('Metadata type edited'), name='metadata_type_edited'
)
event_metadata_type_relationship = namespace.add_event_type(
name='metadata_type_relationship', label=_(
'Metadata type relationship updated'
)
label=_('Metadata type relationship updated'),
name='metadata_type_relationship'
)

View File

@@ -11,29 +11,13 @@ from .tasks import task_add_required_metadata_type, task_remove_metadata_type
logger = logging.getLogger(__name__)
def post_document_type_metadata_type_add(sender, instance, created, **kwargs):
logger.debug('instance: %s', instance)
if created and instance.required:
task_add_required_metadata_type.apply_async(
kwargs={
'document_type_id': instance.document_type.pk,
'metadata_type_id': instance.metadata_type.pk
}
def handler_index_document(sender, **kwargs):
task_index_document.apply_async(
kwargs=dict(document_id=kwargs['instance'].document.pk)
)
def post_document_type_metadata_type_delete(sender, instance, **kwargs):
logger.debug('instance: %s', instance)
task_remove_metadata_type.apply_async(
kwargs={
'document_type_id': instance.document_type.pk,
'metadata_type_id': instance.metadata_type.pk
}
)
def post_document_type_change_metadata(sender, instance, **kwargs):
def handler_post_document_type_change_metadata(sender, instance, **kwargs):
logger.debug('received post_document_type_change')
logger.debug('instance: %s', instance)
@@ -73,7 +57,23 @@ def post_document_type_change_metadata(sender, instance, **kwargs):
)
def handler_index_document(sender, **kwargs):
task_index_document.apply_async(
kwargs=dict(document_id=kwargs['instance'].document.pk)
def handler_post_document_type_metadata_type_add(sender, instance, created, **kwargs):
logger.debug('instance: %s', instance)
if created and instance.required:
task_add_required_metadata_type.apply_async(
kwargs={
'document_type_id': instance.document_type.pk,
'metadata_type_id': instance.metadata_type.pk
}
)
def handler_post_document_type_metadata_type_delete(sender, instance, **kwargs):
logger.debug('instance: %s', instance)
task_remove_metadata_type.apply_async(
kwargs={
'document_type_id': instance.document_type.pk,
'metadata_type_id': instance.metadata_type.pk
}
)

View File

@@ -4,34 +4,35 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace(name='metadata', label=_('Metadata'))
namespace = PermissionNamespace(label=_('Metadata'), name='metadata')
permission_metadata_document_edit = namespace.add_permission(
name='metadata_document_edit', label=_('Edit a document\'s metadata')
label=_('Edit a document\'s metadata'), name='metadata_document_edit'
)
permission_metadata_document_add = namespace.add_permission(
name='metadata_document_add', label=_('Add metadata to a document'))
label=_('Add metadata to a document'), name='metadata_document_add'
)
permission_metadata_document_remove = namespace.add_permission(
name='metadata_document_remove',
label=_('Remove metadata from a document')
label=_('Remove metadata from a document'),
name='metadata_document_remove'
)
permission_metadata_document_view = namespace.add_permission(
name='metadata_document_view', label=_('View metadata from a document')
label=_('View metadata from a document'), name='metadata_document_view'
)
setup_namespace = PermissionNamespace(
name='metadata_setup', label=_('Metadata setup')
label=_('Metadata setup'), name='metadata_setup'
)
permission_metadata_type_edit = setup_namespace.add_permission(
name='metadata_type_edit', label=_('Edit metadata types')
label=_('Edit metadata types'), name='metadata_type_edit'
)
permission_metadata_type_create = setup_namespace.add_permission(
name='metadata_type_create', label=_('Create new metadata types')
label=_('Create new metadata types'), name='metadata_type_create'
)
permission_metadata_type_delete = setup_namespace.add_permission(
name='metadata_type_delete', label=_('Delete metadata types')
label=_('Delete metadata types'), name='metadata_type_delete'
)
permission_metadata_type_view = setup_namespace.add_permission(
name='metadata_type_view', label=_('View metadata types')
label=_('View metadata types'), name='metadata_type_view'
)

View File

@@ -33,15 +33,16 @@ class MetadataTestsMixin(object):
def _request_metadata_type_delete_view(self):
return self.post(
viewname='metadata:setup_metadata_type_delete', args=(
self.metadata_type.pk,
),
viewname='metadata:setup_metadata_type_delete', kwargs={
'pk': self.metadata_type.pk
}
)
def _request_metadata_type_edit_view(self):
return self.post(
viewname='metadata:setup_metadata_type_edit', args=(
self.metadata_type.pk,), data={
viewname='metadata:setup_metadata_type_edit', kwargs={
'pk': self.metadata_type.pk
}, data={
'label': TEST_METADATA_TYPE_LABEL_EDITED,
'name': TEST_METADATA_TYPE_NAME_EDITED
}
@@ -53,10 +54,10 @@ class MetadataTestsMixin(object):
return self.post(
viewname='metadata:setup_metadata_type_document_types',
args=(self.metadata_type.pk,), data={
kwargs={'pk': self.metadata_type.pk}, data={
'form-TOTAL_FORMS': '1',
'form-INITIAL_FORMS': '0',
'form-0-relationship_type': 'required',
'form-0-relationship_type': 'required'
}
)

View File

@@ -58,40 +58,45 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def _request_metadata_type_delete_view(self):
return self.delete(
viewname='rest_api:metadatatype-detail',
args=(self.metadata_type.pk,)
kwargs={'metadata_type_pk': self.metadata_type.pk}
)
def test_metadata_type_delete_no_access(self):
self._create_metadata_type()
response = self._request_metadata_type_delete_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(MetadataType.objects.count(), 1)
def test_metadata_type_delete_with_access(self):
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_delete, obj=self.metadata_type
obj=self.metadata_type, permission=permission_metadata_type_delete
)
response = self._request_metadata_type_delete_view()
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertEqual(MetadataType.objects.count(), 0)
def _request_metadata_type_detail_view(self):
return self.get(
viewname='rest_api:metadatatype-detail',
args=(self.metadata_type.pk,)
kwargs={'metadata_type_pk': self.metadata_type.pk}
)
def test_metadata_type_detail_view_no_access(self):
self._create_metadata_type()
response = self._request_metadata_type_detail_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_metadata_type_detail_view_with_access(self):
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_view, obj=self.metadata_type
obj=self.metadata_type, permission=permission_metadata_type_view
)
response = self._request_metadata_type_detail_view()
self.assertEqual(response.status_code, status.HTTP_200_OK)
@@ -102,7 +107,7 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def _request_metadata_type_edit_view_via_patch(self):
return self.patch(
viewname='rest_api:metadatatype-detail',
args=(self.metadata_type.pk,), data={
kwargs={'metadata_type_pk': self.metadata_type.pk}, data={
'label': TEST_METADATA_TYPE_LABEL_2,
'name': TEST_METADATA_TYPE_NAME_2
}
@@ -110,6 +115,7 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def test_metadata_type_patch_view_no_access(self):
self._create_metadata_type()
response = self._request_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
@@ -120,8 +126,9 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def test_metadata_type_patch_view_with_access(self):
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_edit, obj=self.metadata_type
obj=self.metadata_type, permission=permission_metadata_type_edit
)
response = self._request_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_200_OK)
@@ -132,7 +139,7 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def _request_metadata_type_edit_view_via_put(self):
return self.put(
viewname='rest_api:metadatatype-detail',
args=(self.metadata_type.pk,), data={
kwargs={'metadata_type_pk': self.metadata_type.pk}, data={
'label': TEST_METADATA_TYPE_LABEL_2,
'name': TEST_METADATA_TYPE_NAME_2
}
@@ -150,8 +157,9 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def test_metadata_type_put_view_with_access(self):
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_edit, obj=self.metadata_type
obj=self.metadata_type, permission=permission_metadata_type_edit
)
response = self._request_metadata_type_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_200_OK)
@@ -172,8 +180,9 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def test_metadata_type_list_view_with_access(self):
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_view, obj=self.metadata_type
obj=self.metadata_type, permission=permission_metadata_type_view
)
response = self._request_metadata_type_list_view()
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(
@@ -198,22 +207,26 @@ class DocumentTypeMetadataTypeAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_type_metadata_type_create_view(self):
return self.post(
viewname='rest_api:documenttypemetadatatype-list',
args=(self.test_document_type.pk,), data={
kwargs={'document_type_pk': self.test_document_type.pk}, data={
'metadata_type_pk': self.metadata_type.pk, 'required': False
}
)
def test_document_type_metadata_type_create_view_no_access(self):
response = self._request_document_type_metadata_type_create_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document_type.metadata.count(), 0)
def test_document_type_metadata_type_create_view_with_access(self):
self.grant_access(
permission=permission_document_type_edit, obj=self.test_document_type
obj=self.test_document_type,
permission=permission_document_type_edit
)
response = self._request_document_type_metadata_type_create_view()
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertEqual(response.data['id'], document_type_metadata_type.pk)
@@ -228,43 +241,54 @@ class DocumentTypeMetadataTypeAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_type_metadata_type_delete_view(self):
return self.delete(
viewname='rest_api:documenttypemetadatatype-detail',
args=(
self.test_document_type.pk, self.test_document_type_metadata_type.pk,
),
kwargs={
'document_type_pk': self.test_document_type.pk,
'metadata_type_pk': self.test_document_type_metadata_type.pk
}
)
def test_document_type_metadata_type_delete_view_no_access(self):
self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_delete_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document_type.metadata.count(), 1)
def test_document_type_metadata_type_delete_view_with_access(self):
self._create_document_type_metadata_type()
self.grant_access(permission=permission_document_type_edit, obj=self.test_document_type)
self.grant_access(
obj=self.test_document_type,
permission=permission_document_type_edit
)
response = self._request_document_type_metadata_type_delete_view()
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertEqual(self.test_document_type.metadata.all().count(), 0)
def _request_document_type_metadata_type_list_view(self):
return self.get(
viewname='rest_api:documenttypemetadatatype-list',
args=(
self.test_document_type.pk,
),
viewname='rest_api:documenttypemetadatatype-list', kwargs={
'document_type_pk': self.test_document_type.pk
}
)
def test_document_type_metadata_type_list_view_no_access(self):
self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_list_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_document_type_metadata_type_list_view_with_access(self):
self._create_document_type_metadata_type()
self.grant_access(permission=permission_document_type_view, obj=self.test_document_type)
self.grant_access(
obj=self.test_document_type,
permission=permission_document_type_view
)
response = self._request_document_type_metadata_type_list_view()
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(
response.data['results'][0]['id'],
self.test_document_type_metadata_type.pk
@@ -273,50 +297,65 @@ class DocumentTypeMetadataTypeAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_type_metadata_type_edit_view_via_patch(self):
return self.patch(
viewname='rest_api:documenttypemetadatatype-detail',
args=(
self.test_document_type.pk, self.test_document_type_metadata_type.pk,
), data={
kwargs={
'document_type_pk': self.test_document_type.pk,
'metadata_type_pk': self.test_document_type_metadata_type.pk
}, data={
'required': True
}
)
def test_document_type_metadata_type_patch_view_no_access(self):
self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertFalse(document_type_metadata_type.required, True)
def test_document_type_metadata_type_patch_view_with_access(self):
self._create_document_type_metadata_type()
self.grant_access(permission=permission_document_type_edit, obj=self.test_document_type)
self.grant_access(
obj=self.test_document_type,
permission=permission_document_type_edit
)
response = self._request_document_type_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_200_OK)
document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertEqual(document_type_metadata_type.required, True)
def _request_document_type_metadata_type_edit_view_via_put(self):
return self.put(
viewname='rest_api:documenttypemetadatatype-detail',
args=(
self.test_document_type.pk, self.test_document_type_metadata_type.pk,
), data={
kwargs={
'document_type_pk': self.test_document_type.pk,
'metadata_type_pk': self.test_document_type_metadata_type.pk
}, data={
'required': True
}
)
def test_document_type_metadata_type_put_view_no_access(self):
self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertFalse(document_type_metadata_type.required, True)
def test_document_type_metadata_type_put_view_with_access(self):
self._create_document_type_metadata_type()
self.grant_access(permission=permission_document_type_edit, obj=self.test_document_type)
self.grant_access(
obj=self.test_document_type, permission=permission_document_type_edit
)
response = self._request_document_type_metadata_type_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_200_OK)
document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertEqual(document_type_metadata_type.required, True)
@@ -339,7 +378,7 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_metadata_create_view(self):
return self.post(
viewname='rest_api:documentmetadata-list',
args=(self.test_document.pk,), data={
kwargs={'document_pk': self.test_document.pk}, data={
'metadata_type_pk': self.metadata_type.pk,
'value': TEST_METADATA_VALUE
}
@@ -347,13 +386,18 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def test_document_metadata_create_view_no_access(self):
response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document.metadata.count(), 0)
def test_document_metadata_create_view_with_access(self):
self.grant_access(permission=permission_metadata_document_add, obj=self.test_document)
self.grant_access(
obj=self.test_document, permission=permission_metadata_document_add
)
response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
document_metadata = self.test_document.metadata.first()
self.assertEqual(response.data['id'], document_metadata.pk)
self.assertEqual(document_metadata.metadata_type, self.metadata_type)
@@ -362,6 +406,7 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def test_document_metadata_create_duplicate_view(self):
self._create_document_metadata()
self.grant_permission(permission=permission_metadata_document_add)
response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(list(response.data.keys())[0], 'non_field_errors')
@@ -370,6 +415,7 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
self.metadata_type.lookup = 'invalid,lookup,values,on,purpose'
self.metadata_type.save()
self.grant_permission(permission=permission_metadata_document_add)
response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(list(response.data.keys())[0], 'non_field_errors')
@@ -377,11 +423,15 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_metadata_delete_view(self):
return self.delete(
viewname='rest_api:documentmetadata-detail',
args=(self.test_document.pk, self.test_document_metadata.pk,)
kwargs={
'document_pk': self.test_document.pk,
'metadata_pk': self.test_document_metadata.pk
}
)
def test_document_metadata_delete_view_no_access(self):
self._create_document_metadata()
response = self._request_document_metadata_delete_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document.metadata.all().count(), 1)
@@ -389,29 +439,34 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def test_document_metadata_delete_view_with_access(self):
self._create_document_metadata()
self.grant_access(
permission=permission_metadata_document_remove, obj=self.test_document
obj=self.test_document,
permission=permission_metadata_document_remove
)
response = self._request_document_metadata_delete_view()
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertEqual(self.test_document.metadata.all().count(), 0)
def _request_document_metadata_list_view(self):
return self.get(
viewname='rest_api:documentmetadata-list', args=(
self.test_document.pk,
)
viewname='rest_api:documentmetadata-list', kwargs={
'document_pk': self.test_document.pk
}
)
def test_document_metadata_list_view_no_access(self):
self._create_document_metadata()
response = self._request_document_metadata_list_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_document_metadata_list_view_with_access(self):
self._create_document_metadata()
self.grant_access(
permission=permission_metadata_document_view, obj=self.test_document
obj=self.test_document,
permission=permission_metadata_document_view
)
response = self._request_document_metadata_list_view()
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(
@@ -431,25 +486,33 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_metadata_edit_view_via_patch(self):
return self.patch(
viewname='rest_api:documentmetadata-detail',
args=(self.test_document.pk, self.test_document_metadata.pk,), data={
kwargs={
'document_pk': self.test_document.pk,
'metadata_type': self.test_document_metadata.pk
}, data={
'value': TEST_METADATA_VALUE_EDITED
}
)
def test_document_metadata_patch_view_no_access(self):
self._create_document_metadata()
response = self._request_document_metadata_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.test_document_metadata.refresh_from_db()
self.assertEqual(self.test_document_metadata.value, TEST_METADATA_VALUE)
def test_document_metadata_patch_view_with_access(self):
self._create_document_metadata()
self.grant_access(
permission=permission_metadata_document_edit, obj=self.test_document
obj=self.test_document,
permission=permission_metadata_document_edit
)
response = self._request_document_metadata_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.test_document_metadata.refresh_from_db()
self.assertEqual(
response.data['value'], TEST_METADATA_VALUE_EDITED
@@ -461,25 +524,33 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_metadata_edit_view_via_put(self):
return self.put(
viewname='rest_api:documentmetadata-detail',
args=(self.test_document.pk, self.test_document_metadata.pk,), data={
kwargs={
'document_pk': self.test_document.pk,
'metadata_pk': self.test_document_metadata.pk
}, data={
'value': TEST_METADATA_VALUE_EDITED
}
)
def test_document_metadata_put_view_no_access(self):
self._create_document_metadata()
response = self._request_document_metadata_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.test_document_metadata.refresh_from_db()
self.assertEqual(self.test_document_metadata.value, TEST_METADATA_VALUE)
def test_document_metadata_put_view_with_access(self):
self._create_document_metadata()
self.grant_access(
permission=permission_metadata_document_edit, obj=self.test_document
obj=self.test_document,
permission=permission_metadata_document_edit
)
response = self._request_document_metadata_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.test_document_metadata.refresh_from_db()
self.assertEqual(
response.data['value'], TEST_METADATA_VALUE_EDITED

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from actstream.models import Action
from mayan.apps.documents.tests import GenericDocumentViewTestCase
from mayan.apps.common.tests import GenericViewTestCase
from ..events import (
event_metadata_type_created, event_metadata_type_edited
@@ -15,7 +15,7 @@ from ..permissions import (
from .mixins import MetadataTestsMixin
class MetadataTypeEventsTestCase(MetadataTestsMixin, GenericDocumentViewTestCase):
class MetadataTypeEventsTestCase(MetadataTestsMixin, GenericViewTestCase):
def test_metadata_type_create_event_no_permissions(self):
Action.objects.all().delete()

View File

@@ -20,7 +20,9 @@ from .mixins import MetadataTypeTestMixin
class MetadataTestCase(DocumentTestMixin, MetadataTypeTestMixin, BaseTestCase):
def setUp(self):
super(MetadataTestCase, self).setUp()
self.test_document_type.metadata.create(metadata_type=self.metadata_type)
self.test_document_type.metadata.create(
metadata_type=self.metadata_type
)
def test_no_default(self):
document_metadata = DocumentMetadata(

View File

@@ -1,7 +1,5 @@
from __future__ import unicode_literals
import logging
from django.core.files.base import File
from mayan.apps.common.tests import GenericViewTestCase
@@ -40,15 +38,17 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
name=TEST_METADATA_TYPE_NAME, label=TEST_METADATA_TYPE_LABEL
)
self.test_document_type.metadata.create(metadata_type=self.metadata_type)
self.login_user()
self.test_document_type.metadata.create(
metadata_type=self.metadata_type
)
def test_metadata_add_view_no_permission(self):
self.grant_permission(permission=permission_document_view)
response = self.post(
'metadata:metadata_add', args=(self.test_document.pk,),
data={'metadata_type': self.metadata_type.pk}
viewname='metadata:metadata_add', kwargs={
'pk': self.test_document.pk
}, data={'metadata_type': self.metadata_type.pk}
)
self.assertNotContains(
response, text=self.metadata_type.label, status_code=200
@@ -62,10 +62,13 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
self.grant_permission(permission=permission_metadata_document_edit)
response = self.post(
'metadata:metadata_add', args=(self.test_document.pk,),
data={'metadata_type': self.metadata_type.pk}, follow=True
viewname='metadata:metadata_add', kwargs={
'pk': self.test_document.pk
}, data={'metadata_type': self.metadata_type.pk}, follow=True
)
self.assertContains(
response=response, text='successfully', status_code=200
)
self.assertContains(response, 'successfully', status_code=200)
self.assertEqual(len(self.test_document.metadata.all()), 1)
@@ -91,13 +94,15 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
self.test_document.set_document_type(document_type=document_type_2)
response = self.get(
'metadata:metadata_edit', args=(self.test_document.pk,), follow=True
viewname='metadata:metadata_edit', kwargs={
'pk': self.test_document.pk
}, follow=True
)
self.assertContains(response, 'Edit', status_code=200)
self.assertContains(response=response, text='Edit', status_code=200)
response = self.post(
'metadata:metadata_edit', args=(self.test_document.pk,), data={
'metadata:metadata_edit', kwargs={'pk': self.test_document.pk},
data={
'form-0-id': document_metadata_2.metadata_type.pk,
'form-0-update': True,
'form-0-value': TEST_DOCUMENT_METADATA_VALUE_2,
@@ -106,8 +111,9 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
'form-MAX_NUM_FORMS': '',
}, follow=True
)
self.assertContains(response, 'Metadata for document', status_code=200)
self.assertContains(
response=response, text='Metadata for document', status_code=200
)
self.assertEqual(
self.test_document.metadata.get(metadata_type=metadata_type_2).value,
@@ -125,16 +131,19 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
# Test display of metadata removal form
response = self.get(
'metadata:metadata_remove', args=(self.test_document.pk,),
viewname='metadata:metadata_remove', kwargs={
'pk': self.test_document.pk
}
)
self.assertNotContains(
response, text=self.metadata_type.label, status_code=200
)
# Test post to metadata removal view
response = self.post(
'metadata:metadata_remove', args=(self.test_document.pk,), data={
viewname='metadata:metadata_remove', kwargs={
'pk': self.test_document.pk
}, data={
'form-0-id': document_metadata.metadata_type.pk,
'form-0-update': True,
'form-TOTAL_FORMS': '1',
@@ -148,7 +157,7 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
def test_metadata_remove_view_with_permission(self):
# Silence unrelated logging
logging.getLogger('navigation.classes').setLevel(logging.CRITICAL)
self._silence_logger(name='mayan.apps.navigation.classes')
document_metadata = self.test_document.metadata.create(
metadata_type=self.metadata_type, value=''
@@ -161,18 +170,20 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
# Test display of metadata removal form
response = self.get(
'metadata:metadata_remove', args=(self.test_document.pk,),
viewname='metadata:metadata_remove', kwargs={
'pk': self.test_document.pk
}
)
self.assertContains(
response, text=self.metadata_type.label, status_code=200
response=response, text=self.metadata_type.label, status_code=200
)
self.assertContains(response, 'emove', status_code=200)
self.assertContains(response=response, text='emove', status_code=200)
# Test post to metadata removal view
response = self.post(
'metadata:metadata_remove', args=(self.test_document.pk,), data={
viewname='metadata:metadata_remove', kwargs={
'pk': self.test_document.pk
}, data={
'form-0-id': document_metadata.metadata_type.pk,
'form-0-update': True,
'form-TOTAL_FORMS': '1',
@@ -180,8 +191,9 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
'form-MAX_NUM_FORMS': '',
}, follow=True
)
self.assertContains(response, 'Success', status_code=200)
self.assertContains(
response=response, text='Success', status_code=200
)
self.assertEqual(len(self.test_document.metadata.all()), 0)
@@ -201,16 +213,15 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
document_2.metadata.create(metadata_type=self.metadata_type)
response = self.get(
'metadata:metadata_multiple_edit', data={
viewname='metadata:metadata_multiple_edit', data={
'id_list': '{},{}'.format(self.test_document.pk, document_2.pk)
}
)
self.assertContains(response, 'Edit', status_code=200)
self.assertContains(response=response, text='Edit', status_code=200)
# Test post to metadata removal view
response = self.post(
'metadata:metadata_multiple_edit', data={
viewname='metadata:metadata_multiple_edit', data={
'id_list': '{},{}'.format(self.test_document.pk, document_2.pk),
'form-0-id': document_metadata.metadata_type.pk,
'form-0-value': TEST_METADATA_VALUE_EDITED,
@@ -220,7 +231,6 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
'form-MAX_NUM_FORMS': '',
}, follow=True
)
self.assertEqual(response.status_code, 200)
self.assertEqual(
@@ -245,16 +255,15 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
document_2.metadata.create(metadata_type=self.metadata_type)
response = self.get(
'metadata:metadata_multiple_remove', data={
viewname='metadata:metadata_multiple_remove', data={
'id_list': '{},{}'.format(self.test_document.pk, document_2.pk)
}
)
self.assertEquals(response.status_code, 200)
# Test post to metadata removal view
response = self.post(
'metadata:metadata_multiple_remove', data={
viewname='metadata:metadata_multiple_remove', data={
'id_list': '{},{}'.format(self.test_document.pk, document_2.pk),
'form-0-id': document_metadata.metadata_type.pk,
'form-0-update': True,
@@ -263,7 +272,6 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
'form-MAX_NUM_FORMS': '',
}, follow=True
)
self.assertEqual(response.status_code, 200)
self.assertEqual(self.test_document.metadata.count(), 0)
@@ -280,12 +288,11 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
)
response = self.post(
'metadata:metadata_multiple_add', data={
viewname='metadata:metadata_multiple_add', data={
'id_list': '{},{}'.format(self.test_document.pk, document_2.pk),
'metadata_type': self.metadata_type.pk
}, follow=True
)
self.assertContains(response, 'Edit', status_code=200)
def test_single_document_multiple_metadata_add_view(self):
@@ -302,7 +309,9 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
)
self.post(
'metadata:metadata_add', args=(self.test_document.pk,), data={
viewname='metadata:metadata_add', kwargs={
'pk': self.test_document.pk
}, data={
'metadata_type': [self.metadata_type.pk, metadata_type_2.pk],
}
)
@@ -322,19 +331,14 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
auto_create_document_type = False
auto_upload_document = False
def setUp(self):
super(MetadataTypeViewTestCase, self).setUp()
self.login_user()
def test_metadata_type_create_view_no_permission(self):
response = self._request_metadata_type_create_view()
self.assertEqual(response.status_code, 403)
def test_metadata_type_create_view_with_access(self):
self.grant_permission(permission=permission_metadata_type_create)
response = self._request_metadata_type_create_view()
response = self._request_metadata_type_create_view()
self.assertEqual(response.status_code, 302)
self.assertQuerysetEqual(
@@ -351,8 +355,8 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self._create_metadata_type()
response = self._request_metadata_type_delete_view()
self.assertEqual(response.status_code, 403)
self.assertQuerysetEqual(
qs=MetadataType.objects.values('label', 'name'),
values=[
@@ -367,11 +371,11 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_delete,
obj=self.metadata_type
obj=self.metadata_type,
permission=permission_metadata_type_delete
)
response = self._request_metadata_type_delete_view()
response = self._request_metadata_type_delete_view()
self.assertEqual(response.status_code, 302)
self.assertEqual(MetadataType.objects.count(), 0)
@@ -380,8 +384,8 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self._create_metadata_type()
response = self._request_metadata_type_edit_view()
self.assertEqual(response.status_code, 403)
self.assertQuerysetEqual(
qs=MetadataType.objects.values('label', 'name'),
values=[
@@ -396,11 +400,11 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_edit,
obj=self.metadata_type
obj=self.metadata_type,
permission=permission_metadata_type_edit
)
response = self._request_metadata_type_edit_view()
response = self._request_metadata_type_edit_view()
self.assertEqual(response.status_code, 302)
self.assertQuerysetEqual(
@@ -425,9 +429,10 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self._create_metadata_type()
self.grant_access(
permission=permission_metadata_type_view,
obj=self.metadata_type
obj=self.metadata_type,
permission=permission_metadata_type_view
)
response = self._request_metadata_type_list_view()
self.assertContains(
response=response, text=self.metadata_type, status_code=200
@@ -439,11 +444,9 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self.upload_document()
response = self._request_metadata_type_relationship_edit_view()
self.assertEqual(response.status_code, 403)
self.test_document_type.refresh_from_db()
self.assertEqual(self.test_document_type.metadata.count(), 0)
def test_metadata_type_relationship_view_with_document_type_access(self):
@@ -452,15 +455,14 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self.upload_document()
self.grant_access(
permission=permission_document_type_edit, obj=self.test_document_type
obj=self.test_document_type,
permission=permission_document_type_edit
)
response = self._request_metadata_type_relationship_edit_view()
self.assertEqual(response.status_code, 403)
self.test_document_type.refresh_from_db()
self.assertEqual(self.test_document_type.metadata.count(), 0)
def test_metadata_type_relationship_view_with_metadata_type_access(self):
@@ -469,15 +471,13 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self.upload_document()
self.grant_access(
permission=permission_metadata_type_edit, obj=self.metadata_type
obj=self.metadata_type, permission=permission_metadata_type_edit
)
response = self._request_metadata_type_relationship_edit_view()
self.assertEqual(response.status_code, 302)
self.test_document_type.refresh_from_db()
self.assertEqual(self.test_document_type.metadata.count(), 0)
def test_metadata_type_relationship_view_with_metadata_type_and_document_type_access(self):
@@ -486,18 +486,17 @@ class MetadataTypeViewTestCase(DocumentTestMixin, MetadataTestsMixin, GenericVie
self.upload_document()
self.grant_access(
permission=permission_metadata_type_edit, obj=self.metadata_type
obj=self.metadata_type, permission=permission_metadata_type_edit
)
self.grant_access(
permission=permission_document_type_edit, obj=self.test_document_type
obj=self.test_document_type,
permission=permission_document_type_edit
)
response = self._request_metadata_type_relationship_edit_view()
self.assertEqual(response.status_code, 302)
self.test_document_type.refresh_from_db()
self.assertQuerysetEqual(
qs=self.test_document_type.metadata.values('metadata_type', 'required'),
values=[

View File

@@ -21,16 +21,15 @@ from .mixins import MetadataTypeTestMixin
class DocumentUploadMetadataTestCase(MetadataTypeTestMixin, GenericDocumentViewTestCase):
auto_upload_document = False
def setUp(self):
super(DocumentUploadMetadataTestCase, self).setUp()
self.login_user()
self.source = WebFormSource.objects.create(
enabled=True, label=TEST_SOURCE_LABEL,
uncompress=TEST_SOURCE_UNCOMPRESS_N
)
self.test_document.delete()
self.test_document_type.metadata.create(
metadata_type=self.metadata_type, required=True
)
@@ -41,7 +40,7 @@ class DocumentUploadMetadataTestCase(MetadataTypeTestMixin, GenericDocumentViewT
url.args['metadata0_value'] = TEST_METADATA_VALUE_UNICODE
self.grant_access(
permission=permission_document_create, obj=self.test_document_type
obj=self.test_document_type, permission=permission_document_create
)
# Upload the test document
@@ -53,6 +52,7 @@ class DocumentUploadMetadataTestCase(MetadataTypeTestMixin, GenericDocumentViewT
}
)
self.assertEqual(response.status_code, 302)
self.assertEqual(Document.objects.count(), 1)
self.assertEqual(
Document.objects.first().metadata.first().value,
@@ -76,6 +76,7 @@ class DocumentUploadMetadataTestCase(MetadataTypeTestMixin, GenericDocumentViewT
}
)
self.assertEqual(response.status_code, 302)
self.assertEqual(Document.objects.count(), 1)
self.assertEqual(
Document.objects.first().metadata.first().value,
@@ -93,5 +94,4 @@ class DocumentUploadMetadataTestCase(MetadataTypeTestMixin, GenericDocumentViewT
'document_create_wizard-current_step': 0
}
)
self.assertContains(response=response, text='Step 2', status_code=200)

View File

@@ -80,7 +80,7 @@ class DocumentMetadataAddView(MultipleObjectFormActionView):
if self.action_count == 1:
return HttpResponseRedirect(
reverse(
redirect_to=reverse(
viewname='metadata:metadata_edit', kwargs={
'pk': queryset.first().pk
}
@@ -88,7 +88,7 @@ class DocumentMetadataAddView(MultipleObjectFormActionView):
)
elif self.action_count > 1:
return HttpResponseRedirect(
'%s?%s' % (
redirect_to='%s?%s' % (
reverse(viewname='metadata:metadata_multiple_edit'),
urlencode(
{
@@ -112,9 +112,9 @@ class DocumentMetadataAddView(MultipleObjectFormActionView):
'submit_icon_class': icon_document_metadata_add,
'submit_label': _('Add'),
'title': ungettext(
'Add metadata types to document',
'Add metadata types to documents',
queryset.count()
singular='Add metadata types to document',
plural='Add metadata types to documents',
number=queryset.count()
)
}
@@ -248,7 +248,7 @@ class DocumentMetadataEditView(MultipleObjectFormActionView):
if self.action_count == 1:
return HttpResponseRedirect(
reverse(
redirect_to=reverse(
viewname='metadata:metadata_edit', kwargs={
'pk': queryset.first().pk
}
@@ -256,7 +256,7 @@ class DocumentMetadataEditView(MultipleObjectFormActionView):
)
elif self.action_count > 1:
return HttpResponseRedirect(
'%s?%s' % (
redirect_to='%s?%s' % (
reverse(viewname='metadata:metadata_multiple_edit'),
urlencode(
{
@@ -472,7 +472,7 @@ class DocumentMetadataRemoveView(MultipleObjectFormActionView):
if self.action_count == 1:
return HttpResponseRedirect(
reverse(
redirect_to=reverse(
viewname='metadata:metadata_edit', kwargs={
'pk': queryset.first().pk
}
@@ -480,7 +480,7 @@ class DocumentMetadataRemoveView(MultipleObjectFormActionView):
)
elif self.action_count > 1:
return HttpResponseRedirect(
'%s?%s' % (
redirect_to='%s?%s' % (
reverse(viewname='metadata:metadata_multiple_edit'),
urlencode(
{
@@ -505,9 +505,9 @@ class DocumentMetadataRemoveView(MultipleObjectFormActionView):
'submit_icon_class': icon_document_metadata_remove,
'submit_label': _('Remove'),
'title': ungettext(
'Remove metadata types from the document',
'Remove metadata types from the documents',
queryset.count()
singular='Remove metadata types from the document',
plural='Remove metadata types from the documents',
number=queryset.count()
)
}

View File

@@ -29,4 +29,3 @@ def method_group_roles_remove(self, queryset, _user):
event_role_edited.commit(
actor=_user, action_object=self, target=role
)