Files
mayan-edms/mayan/apps/linking/tests/mixins.py
Roberto Rosario 15c953815e Improve linking app tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 00:54:10 -04:00

69 lines
2.3 KiB
Python

from __future__ import unicode_literals
from ..models import SmartLink, SmartLinkCondition
from .literals import (
TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA,
TEST_SMART_LINK_CONDITION_EXPRESSION,
TEST_SMART_LINK_CONDITION_OPERATOR, TEST_SMART_LINK_DYNAMIC_LABEL,
TEST_SMART_LINK_LABEL, TEST_SMART_LINK_LABEL_EDITED
)
class SmartLinkDocumentViewTestMixin(object):
def _request_test_smart_link_document_instances_view(self):
return self.get(
viewname='linking:smart_link_instances_for_document',
kwargs={'pk': self.test_document.pk}
)
class SmartLinkTestMixin(object):
def _create_test_smart_link(self, add_test_document_type=False):
self.test_smart_link = SmartLink.objects.create(
label=TEST_SMART_LINK_LABEL,
dynamic_label=TEST_SMART_LINK_DYNAMIC_LABEL
)
if add_test_document_type:
self.test_smart_link.document_types.add(self.test_document_type)
def _create_test_smart_link_condition(self):
self.test_smart_link_condition = SmartLinkCondition.objects.create(
smart_link=self.test_smart_link,
foreign_document_data=TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA,
expression=TEST_SMART_LINK_CONDITION_EXPRESSION,
operator=TEST_SMART_LINK_CONDITION_OPERATOR
)
class SmartLinkViewTestMixin(object):
def _request_test_smart_link_create_view(self):
# Typecast to list to force queryset evaluation
values = list(SmartLink.objects.values_list('pk', flat=True))
response = self.post(
viewname='linking:smart_link_create', data={
'label': TEST_SMART_LINK_LABEL
}
)
self.test_smart_link = SmartLink.objects.exclude(pk__in=values).first()
return response
def _request_test_smart_link_delete_view(self):
return self.post(
viewname='linking:smart_link_delete', kwargs={
'pk': self.test_smart_link.pk
}
)
def _request_test_smart_link_edit_view(self):
return self.post(
viewname='linking:smart_link_edit', kwargs={
'pk': self.test_smart_link.pk
}, data={
'label': TEST_SMART_LINK_LABEL_EDITED
}
)