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.contrib import messages
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext from django.utils.translation import ungettext
from mayan.apps.acls.models import AccessControlList
from mayan.apps.common.generics import ( from mayan.apps.common.generics import (
FormView, MultipleObjectConfirmActionView, SingleObjectEditView, FormView, MultipleObjectConfirmActionView, SingleObjectEditView,
SingleObjectListView SingleObjectListView

View File

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

View File

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

View File

@@ -4,8 +4,8 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.events import EventTypeNamespace 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( 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 return self.get_backend().label
backend_label.short_description = _('Backend label')
def dumps(self, data): def dumps(self, data):
""" """
Serialize the backend configuration 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 from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace(name='mailing', label=_('Mailing')) namespace = PermissionNamespace(label=_('Mailing'), name='mailing')
permission_mailing_link = namespace.add_permission( 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( 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( 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( 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( 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( 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( 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( 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 from mayan.apps.task_manager.classes import CeleryQueue
queue_mailing = CeleryQueue( queue_mailing = CeleryQueue(label=_('Mailing'), name='mailing')
name='mailing', label=_('Mailing')
)
queue_mailing.add_task_type( 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 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( setting_link_subject_template = namespace.add_setting(
default=_('Link for document: {{ document }}'), default=_('Link for document: {{ document }}'),

View File

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

View File

@@ -71,14 +71,14 @@ class Statistic(object):
slug__in=queryset.values_list('name', flat=True) slug__in=queryset.values_list('name', flat=True)
).delete() ).delete()
@classmethod
def get_all(cls):
return list(cls._registry.values())
@classmethod @classmethod
def get(cls, slug): def get(cls, slug):
return cls._registry[slug] return cls._registry[slug]
@classmethod
def get_all(cls):
return list(cls._registry.values())
@classmethod @classmethod
def get_task_names(cls): def get_task_names(cls):
return [task.get_task_name() for task in cls.get_all()] return [task.get_task_name() for task in cls.get_all()]
@@ -119,6 +119,19 @@ class Statistic(object):
def execute(self): def execute(self):
self.store_results(results=self.func()) 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): def get_task_name(self):
return 'mayan_statistics.task_execute_statistic_{}'.format(self.slug) return 'mayan_statistics.task_execute_statistic_{}'.format(self.slug)
@@ -134,19 +147,6 @@ class Statistic(object):
) )
statistic_result.store_data(data=results) 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): class StatisticLineChart(Statistic):
renderer = ChartJSLine renderer = ChartJSLine

View File

@@ -4,8 +4,8 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.permissions import PermissionNamespace from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace(name='statistics', label=_('Statistics')) namespace = PermissionNamespace(label=_('Statistics'), name='statistics')
permission_statistics_view = namespace.add_permission( 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 from mayan.apps.task_manager.classes import CeleryQueue
queue_statistics = CeleryQueue( queue_statistics = CeleryQueue(
name='statistics', label=_('Statistics'), transient=True label=_('Statistics'), name='statistics', transient=True
) )
queue_statistics.add_task_type( 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): class StatisticsViewTestCase(GenericViewTestCase):
def setUp(self): def _request_test_statistic_detail_view(self):
super(StatisticsViewTestCase, self).setUp() return self.get(
self.login_user() viewname='statistics:statistic_detail', kwargs={
'slug': self.statistic.slug
def test_statistic_detail_view_no_permissions(self): }
statistic = Statistic.get_all()[0]
response = self.get(
'statistics:statistic_detail', args=(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) self.assertEqual(response.status_code, 403)
def test_statistic_detail_view_with_permissions(self): def test_statistic_detail_view_with_permissions(self):
self.grant_permission(permission=permission_statistics_view) self.grant_permission(permission=permission_statistics_view)
statistic = Statistic.get_all()[0] self.statistic = Statistic.get_all()[0]
response = self.get(
'statistics:statistic_detail', args=(statistic.slug,)
)
response = self._request_test_statistic_detail_view()
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
def test_statistic_namespace_list_view_no_permissions(self): def _request_test_namespace_list_view(self):
response = self.get('statistics:namespace_list') 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) self.assertEqual(response.status_code, 403)
def test_statistic_namespace_list_view_with_permissions(self): def test_statistic_namespace_list_view_with_permissions(self):
self.grant_permission(permission=permission_statistics_view) 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) self.assertEqual(response.status_code, 200)

View File

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

View File

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

View File

@@ -4,31 +4,24 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.events import EventTypeNamespace 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( event_document_metadata_added = namespace.add_event_type(
name='document_metadata_added', label=_( label=_('Document metadata added'), name='document_metadata_added'
'Document metadata added'
)
) )
event_document_metadata_edited = namespace.add_event_type( event_document_metadata_edited = namespace.add_event_type(
name='document_metadata_edited', label=_( label=_('Document metadata edited'), name='document_metadata_edited'
'Document metadata edited'
)
) )
event_document_metadata_removed = namespace.add_event_type( event_document_metadata_removed = namespace.add_event_type(
name='document_metadata_removed', label=_( label=_('Document metadata removed'), name='document_metadata_removed'
'Document metadata removed'
)
) )
event_metadata_type_created = namespace.add_event_type( 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( 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( event_metadata_type_relationship = namespace.add_event_type(
name='metadata_type_relationship', label=_( label=_('Metadata type relationship updated'),
'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__) logger = logging.getLogger(__name__)
def post_document_type_metadata_type_add(sender, instance, created, **kwargs): def handler_index_document(sender, **kwargs):
logger.debug('instance: %s', instance) task_index_document.apply_async(
kwargs=dict(document_id=kwargs['instance'].document.pk)
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 post_document_type_metadata_type_delete(sender, instance, **kwargs): def handler_post_document_type_change_metadata(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):
logger.debug('received post_document_type_change') logger.debug('received post_document_type_change')
logger.debug('instance: %s', instance) logger.debug('instance: %s', instance)
@@ -73,7 +57,23 @@ def post_document_type_change_metadata(sender, instance, **kwargs):
) )
def handler_index_document(sender, **kwargs): def handler_post_document_type_metadata_type_add(sender, instance, created, **kwargs):
task_index_document.apply_async( logger.debug('instance: %s', instance)
kwargs=dict(document_id=kwargs['instance'].document.pk)
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 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( 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( 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( 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( 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( setup_namespace = PermissionNamespace(
name='metadata_setup', label=_('Metadata setup') label=_('Metadata setup'), name='metadata_setup'
) )
permission_metadata_type_edit = setup_namespace.add_permission( 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( 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( 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( 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): def _request_metadata_type_delete_view(self):
return self.post( return self.post(
viewname='metadata:setup_metadata_type_delete', args=( viewname='metadata:setup_metadata_type_delete', kwargs={
self.metadata_type.pk, 'pk': self.metadata_type.pk
), }
) )
def _request_metadata_type_edit_view(self): def _request_metadata_type_edit_view(self):
return self.post( return self.post(
viewname='metadata:setup_metadata_type_edit', args=( viewname='metadata:setup_metadata_type_edit', kwargs={
self.metadata_type.pk,), data={ 'pk': self.metadata_type.pk
}, data={
'label': TEST_METADATA_TYPE_LABEL_EDITED, 'label': TEST_METADATA_TYPE_LABEL_EDITED,
'name': TEST_METADATA_TYPE_NAME_EDITED 'name': TEST_METADATA_TYPE_NAME_EDITED
} }
@@ -53,10 +54,10 @@ class MetadataTestsMixin(object):
return self.post( return self.post(
viewname='metadata:setup_metadata_type_document_types', 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-TOTAL_FORMS': '1',
'form-INITIAL_FORMS': '0', '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): def _request_metadata_type_delete_view(self):
return self.delete( return self.delete(
viewname='rest_api:metadatatype-detail', 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): def test_metadata_type_delete_no_access(self):
self._create_metadata_type() self._create_metadata_type()
response = self._request_metadata_type_delete_view() response = self._request_metadata_type_delete_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(MetadataType.objects.count(), 1) self.assertEqual(MetadataType.objects.count(), 1)
def test_metadata_type_delete_with_access(self): def test_metadata_type_delete_with_access(self):
self._create_metadata_type() self._create_metadata_type()
self.grant_access( 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, status.HTTP_204_NO_CONTENT) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertEqual(MetadataType.objects.count(), 0) self.assertEqual(MetadataType.objects.count(), 0)
def _request_metadata_type_detail_view(self): def _request_metadata_type_detail_view(self):
return self.get( return self.get(
viewname='rest_api:metadatatype-detail', 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): def test_metadata_type_detail_view_no_access(self):
self._create_metadata_type() self._create_metadata_type()
response = self._request_metadata_type_detail_view() response = self._request_metadata_type_detail_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_metadata_type_detail_view_with_access(self): def test_metadata_type_detail_view_with_access(self):
self._create_metadata_type() self._create_metadata_type()
self.grant_access( 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() response = self._request_metadata_type_detail_view()
self.assertEqual(response.status_code, status.HTTP_200_OK) 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): def _request_metadata_type_edit_view_via_patch(self):
return self.patch( return self.patch(
viewname='rest_api:metadatatype-detail', 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, 'label': TEST_METADATA_TYPE_LABEL_2,
'name': TEST_METADATA_TYPE_NAME_2 'name': TEST_METADATA_TYPE_NAME_2
} }
@@ -110,6 +115,7 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def test_metadata_type_patch_view_no_access(self): def test_metadata_type_patch_view_no_access(self):
self._create_metadata_type() self._create_metadata_type()
response = self._request_metadata_type_edit_view_via_patch() response = self._request_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) 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): def test_metadata_type_patch_view_with_access(self):
self._create_metadata_type() self._create_metadata_type()
self.grant_access( 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() response = self._request_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_200_OK) 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): def _request_metadata_type_edit_view_via_put(self):
return self.put( return self.put(
viewname='rest_api:metadatatype-detail', 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, 'label': TEST_METADATA_TYPE_LABEL_2,
'name': TEST_METADATA_TYPE_NAME_2 'name': TEST_METADATA_TYPE_NAME_2
} }
@@ -150,8 +157,9 @@ class MetadataTypeAPITestCase(BaseAPITestCase):
def test_metadata_type_put_view_with_access(self): def test_metadata_type_put_view_with_access(self):
self._create_metadata_type() self._create_metadata_type()
self.grant_access( 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() response = self._request_metadata_type_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_200_OK) 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): def test_metadata_type_list_view_with_access(self):
self._create_metadata_type() self._create_metadata_type()
self.grant_access( 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() response = self._request_metadata_type_list_view()
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual( self.assertEqual(
@@ -198,22 +207,26 @@ class DocumentTypeMetadataTypeAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_type_metadata_type_create_view(self): def _request_document_type_metadata_type_create_view(self):
return self.post( return self.post(
viewname='rest_api:documenttypemetadatatype-list', 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 'metadata_type_pk': self.metadata_type.pk, 'required': False
} }
) )
def test_document_type_metadata_type_create_view_no_access(self): def test_document_type_metadata_type_create_view_no_access(self):
response = self._request_document_type_metadata_type_create_view() response = self._request_document_type_metadata_type_create_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document_type.metadata.count(), 0) self.assertEqual(self.test_document_type.metadata.count(), 0)
def test_document_type_metadata_type_create_view_with_access(self): def test_document_type_metadata_type_create_view_with_access(self):
self.grant_access( 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() response = self._request_document_type_metadata_type_create_view()
self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
document_type_metadata_type = DocumentTypeMetadataType.objects.first() document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertEqual(response.data['id'], document_type_metadata_type.pk) 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): def _request_document_type_metadata_type_delete_view(self):
return self.delete( return self.delete(
viewname='rest_api:documenttypemetadatatype-detail', viewname='rest_api:documenttypemetadatatype-detail',
args=( kwargs={
self.test_document_type.pk, self.test_document_type_metadata_type.pk, '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): def test_document_type_metadata_type_delete_view_no_access(self):
self._create_document_type_metadata_type() self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_delete_view() response = self._request_document_type_metadata_type_delete_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document_type.metadata.count(), 1) self.assertEqual(self.test_document_type.metadata.count(), 1)
def test_document_type_metadata_type_delete_view_with_access(self): def test_document_type_metadata_type_delete_view_with_access(self):
self._create_document_type_metadata_type() 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() response = self._request_document_type_metadata_type_delete_view()
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertEqual(self.test_document_type.metadata.all().count(), 0) self.assertEqual(self.test_document_type.metadata.all().count(), 0)
def _request_document_type_metadata_type_list_view(self): def _request_document_type_metadata_type_list_view(self):
return self.get( return self.get(
viewname='rest_api:documenttypemetadatatype-list', viewname='rest_api:documenttypemetadatatype-list', kwargs={
args=( 'document_type_pk': self.test_document_type.pk
self.test_document_type.pk, }
),
) )
def test_document_type_metadata_type_list_view_no_access(self): def test_document_type_metadata_type_list_view_no_access(self):
self._create_document_type_metadata_type() self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_list_view() response = self._request_document_type_metadata_type_list_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_document_type_metadata_type_list_view_with_access(self): def test_document_type_metadata_type_list_view_with_access(self):
self._create_document_type_metadata_type() 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() response = self._request_document_type_metadata_type_list_view()
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual( self.assertEqual(
response.data['results'][0]['id'], response.data['results'][0]['id'],
self.test_document_type_metadata_type.pk 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): def _request_document_type_metadata_type_edit_view_via_patch(self):
return self.patch( return self.patch(
viewname='rest_api:documenttypemetadatatype-detail', viewname='rest_api:documenttypemetadatatype-detail',
args=( kwargs={
self.test_document_type.pk, self.test_document_type_metadata_type.pk, 'document_type_pk': self.test_document_type.pk,
), data={ 'metadata_type_pk': self.test_document_type_metadata_type.pk
}, data={
'required': True 'required': True
} }
) )
def test_document_type_metadata_type_patch_view_no_access(self): def test_document_type_metadata_type_patch_view_no_access(self):
self._create_document_type_metadata_type() self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_edit_view_via_patch() response = self._request_document_type_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
document_type_metadata_type = DocumentTypeMetadataType.objects.first() document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertFalse(document_type_metadata_type.required, True) self.assertFalse(document_type_metadata_type.required, True)
def test_document_type_metadata_type_patch_view_with_access(self): def test_document_type_metadata_type_patch_view_with_access(self):
self._create_document_type_metadata_type() 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() response = self._request_document_type_metadata_type_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
document_type_metadata_type = DocumentTypeMetadataType.objects.first() document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertEqual(document_type_metadata_type.required, True) self.assertEqual(document_type_metadata_type.required, True)
def _request_document_type_metadata_type_edit_view_via_put(self): def _request_document_type_metadata_type_edit_view_via_put(self):
return self.put( return self.put(
viewname='rest_api:documenttypemetadatatype-detail', viewname='rest_api:documenttypemetadatatype-detail',
args=( kwargs={
self.test_document_type.pk, self.test_document_type_metadata_type.pk, 'document_type_pk': self.test_document_type.pk,
), data={ 'metadata_type_pk': self.test_document_type_metadata_type.pk
}, data={
'required': True 'required': True
} }
) )
def test_document_type_metadata_type_put_view_no_access(self): def test_document_type_metadata_type_put_view_no_access(self):
self._create_document_type_metadata_type() self._create_document_type_metadata_type()
response = self._request_document_type_metadata_type_edit_view_via_put() response = self._request_document_type_metadata_type_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
document_type_metadata_type = DocumentTypeMetadataType.objects.first() document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertFalse(document_type_metadata_type.required, True) self.assertFalse(document_type_metadata_type.required, True)
def test_document_type_metadata_type_put_view_with_access(self): def test_document_type_metadata_type_put_view_with_access(self):
self._create_document_type_metadata_type() 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() response = self._request_document_type_metadata_type_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
document_type_metadata_type = DocumentTypeMetadataType.objects.first() document_type_metadata_type = DocumentTypeMetadataType.objects.first()
self.assertEqual(document_type_metadata_type.required, True) self.assertEqual(document_type_metadata_type.required, True)
@@ -339,7 +378,7 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_metadata_create_view(self): def _request_document_metadata_create_view(self):
return self.post( return self.post(
viewname='rest_api:documentmetadata-list', 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, 'metadata_type_pk': self.metadata_type.pk,
'value': TEST_METADATA_VALUE 'value': TEST_METADATA_VALUE
} }
@@ -347,13 +386,18 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def test_document_metadata_create_view_no_access(self): def test_document_metadata_create_view_no_access(self):
response = self._request_document_metadata_create_view() response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document.metadata.count(), 0) self.assertEqual(self.test_document.metadata.count(), 0)
def test_document_metadata_create_view_with_access(self): 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() response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
document_metadata = self.test_document.metadata.first() document_metadata = self.test_document.metadata.first()
self.assertEqual(response.data['id'], document_metadata.pk) self.assertEqual(response.data['id'], document_metadata.pk)
self.assertEqual(document_metadata.metadata_type, self.metadata_type) 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): def test_document_metadata_create_duplicate_view(self):
self._create_document_metadata() self._create_document_metadata()
self.grant_permission(permission=permission_metadata_document_add) self.grant_permission(permission=permission_metadata_document_add)
response = self._request_document_metadata_create_view() response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(list(response.data.keys())[0], 'non_field_errors') 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.lookup = 'invalid,lookup,values,on,purpose'
self.metadata_type.save() self.metadata_type.save()
self.grant_permission(permission=permission_metadata_document_add) self.grant_permission(permission=permission_metadata_document_add)
response = self._request_document_metadata_create_view() response = self._request_document_metadata_create_view()
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(list(response.data.keys())[0], 'non_field_errors') 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): def _request_document_metadata_delete_view(self):
return self.delete( return self.delete(
viewname='rest_api:documentmetadata-detail', 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): def test_document_metadata_delete_view_no_access(self):
self._create_document_metadata() self._create_document_metadata()
response = self._request_document_metadata_delete_view() response = self._request_document_metadata_delete_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(self.test_document.metadata.all().count(), 1) 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): def test_document_metadata_delete_view_with_access(self):
self._create_document_metadata() self._create_document_metadata()
self.grant_access( 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() response = self._request_document_metadata_delete_view()
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
self.assertEqual(self.test_document.metadata.all().count(), 0) self.assertEqual(self.test_document.metadata.all().count(), 0)
def _request_document_metadata_list_view(self): def _request_document_metadata_list_view(self):
return self.get( return self.get(
viewname='rest_api:documentmetadata-list', args=( viewname='rest_api:documentmetadata-list', kwargs={
self.test_document.pk, 'document_pk': self.test_document.pk
) }
) )
def test_document_metadata_list_view_no_access(self): def test_document_metadata_list_view_no_access(self):
self._create_document_metadata() self._create_document_metadata()
response = self._request_document_metadata_list_view() response = self._request_document_metadata_list_view()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_document_metadata_list_view_with_access(self): def test_document_metadata_list_view_with_access(self):
self._create_document_metadata() self._create_document_metadata()
self.grant_access( 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() response = self._request_document_metadata_list_view()
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual( self.assertEqual(
@@ -431,25 +486,33 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_metadata_edit_view_via_patch(self): def _request_document_metadata_edit_view_via_patch(self):
return self.patch( return self.patch(
viewname='rest_api:documentmetadata-detail', 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 'value': TEST_METADATA_VALUE_EDITED
} }
) )
def test_document_metadata_patch_view_no_access(self): def test_document_metadata_patch_view_no_access(self):
self._create_document_metadata() self._create_document_metadata()
response = self._request_document_metadata_edit_view_via_patch() response = self._request_document_metadata_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.test_document_metadata.refresh_from_db() self.test_document_metadata.refresh_from_db()
self.assertEqual(self.test_document_metadata.value, TEST_METADATA_VALUE) self.assertEqual(self.test_document_metadata.value, TEST_METADATA_VALUE)
def test_document_metadata_patch_view_with_access(self): def test_document_metadata_patch_view_with_access(self):
self._create_document_metadata() self._create_document_metadata()
self.grant_access( 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() response = self._request_document_metadata_edit_view_via_patch()
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
self.test_document_metadata.refresh_from_db() self.test_document_metadata.refresh_from_db()
self.assertEqual( self.assertEqual(
response.data['value'], TEST_METADATA_VALUE_EDITED response.data['value'], TEST_METADATA_VALUE_EDITED
@@ -461,25 +524,33 @@ class DocumentMetadataAPITestCase(DocumentTestMixin, BaseAPITestCase):
def _request_document_metadata_edit_view_via_put(self): def _request_document_metadata_edit_view_via_put(self):
return self.put( return self.put(
viewname='rest_api:documentmetadata-detail', 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 'value': TEST_METADATA_VALUE_EDITED
} }
) )
def test_document_metadata_put_view_no_access(self): def test_document_metadata_put_view_no_access(self):
self._create_document_metadata() self._create_document_metadata()
response = self._request_document_metadata_edit_view_via_put() response = self._request_document_metadata_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.test_document_metadata.refresh_from_db() self.test_document_metadata.refresh_from_db()
self.assertEqual(self.test_document_metadata.value, TEST_METADATA_VALUE) self.assertEqual(self.test_document_metadata.value, TEST_METADATA_VALUE)
def test_document_metadata_put_view_with_access(self): def test_document_metadata_put_view_with_access(self):
self._create_document_metadata() self._create_document_metadata()
self.grant_access( 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() response = self._request_document_metadata_edit_view_via_put()
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
self.test_document_metadata.refresh_from_db() self.test_document_metadata.refresh_from_db()
self.assertEqual( self.assertEqual(
response.data['value'], TEST_METADATA_VALUE_EDITED response.data['value'], TEST_METADATA_VALUE_EDITED

View File

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

View File

@@ -20,7 +20,9 @@ from .mixins import MetadataTypeTestMixin
class MetadataTestCase(DocumentTestMixin, MetadataTypeTestMixin, BaseTestCase): class MetadataTestCase(DocumentTestMixin, MetadataTypeTestMixin, BaseTestCase):
def setUp(self): def setUp(self):
super(MetadataTestCase, self).setUp() 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): def test_no_default(self):
document_metadata = DocumentMetadata( document_metadata = DocumentMetadata(

View File

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

View File

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

View File

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

View File

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