Add checkout tests
Add link tests. Add checkout info view tests. Move common code to a test mixin. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
18
mayan/apps/checkouts/tests/mixins.py
Normal file
18
mayan/apps/checkouts/tests/mixins.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import datetime
|
||||
|
||||
from django.utils.timezone import now
|
||||
|
||||
from ..models import DocumentCheckout
|
||||
|
||||
|
||||
class DocumentCheckoutTestMixin(object):
|
||||
def _checkout_document(self):
|
||||
expiration_datetime = now() + datetime.timedelta(days=1)
|
||||
|
||||
DocumentCheckout.objects.checkout_document(
|
||||
document=self.document, expiration_datetime=expiration_datetime,
|
||||
user=self.user, block_new_version=True
|
||||
)
|
||||
self.assertTrue(self.document.is_checked_out())
|
||||
50
mayan/apps/checkouts/tests/test_links.py
Normal file
50
mayan/apps/checkouts/tests/test_links.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..links import link_checkout_document, link_checkout_info
|
||||
from ..permissions import (
|
||||
permission_document_checkout, permission_document_checkout_detail_view
|
||||
)
|
||||
|
||||
from .mixins import DocumentCheckoutTestMixin
|
||||
|
||||
|
||||
class CheckoutLinksTestCase(DocumentCheckoutTestMixin, GenericDocumentViewTestCase):
|
||||
def setUp(self):
|
||||
super(CheckoutLinksTestCase, self).setUp()
|
||||
self.login_user()
|
||||
|
||||
def _resolve_checkout_link(self):
|
||||
self.add_test_view(test_object=self.document)
|
||||
context = self.get_test_view()
|
||||
context['user'] = self.user
|
||||
return link_checkout_document.resolve(context=context)
|
||||
|
||||
def test_checkout_link_no_access(self):
|
||||
resolved_link = self._resolve_checkout_link()
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_checkout_link_with_access(self):
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_document_checkout
|
||||
)
|
||||
resolved_link = self._resolve_checkout_link()
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
|
||||
def _resolve_checkout_info_link(self):
|
||||
self.add_test_view(test_object=self.document)
|
||||
context = self.get_test_view()
|
||||
context['user'] = self.user
|
||||
return link_checkout_info.resolve(context=context)
|
||||
|
||||
def test_checkout_info_link_no_access(self):
|
||||
resolved_link = self._resolve_checkout_info_link()
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_checkout_info_link_with_access(self):
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_document_checkout_detail_view
|
||||
)
|
||||
resolved_link = self._resolve_checkout_info_link()
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
@@ -20,21 +20,14 @@ from ..permissions import (
|
||||
permission_document_checkout, permission_document_checkout_detail_view
|
||||
)
|
||||
|
||||
from .mixins import DocumentCheckoutTestMixin
|
||||
|
||||
class DocumentCheckoutViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
class DocumentCheckoutViewTestCase(DocumentCheckoutTestMixin, GenericDocumentViewTestCase):
|
||||
def setUp(self):
|
||||
super(DocumentCheckoutViewTestCase, self).setUp()
|
||||
self.login_user()
|
||||
|
||||
def _checkout_document(self):
|
||||
expiration_datetime = now() + datetime.timedelta(days=1)
|
||||
|
||||
DocumentCheckout.objects.checkout_document(
|
||||
document=self.document, expiration_datetime=expiration_datetime,
|
||||
user=self.user, block_new_version=True
|
||||
)
|
||||
self.assertTrue(self.document.is_checked_out())
|
||||
|
||||
def _request_document_check_in_view(self):
|
||||
return self.post(
|
||||
viewname='checkouts:checkin_document', args=(self.document.pk,),
|
||||
@@ -116,6 +109,10 @@ class DocumentCheckoutViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
def test_checkout_detail_view_no_permission(self):
|
||||
self._checkout_document()
|
||||
self.grant_access(
|
||||
obj=self.document,
|
||||
permission=permission_document_checkout
|
||||
)
|
||||
|
||||
response = self._request_checkout_detail_view()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user