Add document checkout view get test

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-11-11 02:12:04 -04:00
parent 03e4978106
commit 588ab4c728
3 changed files with 243 additions and 5 deletions

View File

@@ -74,7 +74,14 @@ class DocumentCheckoutViewTestMixin(object):
def _request_test_document_check_out_list_view(self):
return self.get(viewname='checkouts:check_out_list')
def _request_test_document_check_out_view(self):
def _request_test_document_check_out_get_view(self):
return self.get(
viewname='checkouts:check_out_document', kwargs={
'pk': self.test_document.pk
},
)
def _request_test_document_check_out_post_view(self):
return self.post(
viewname='checkouts:check_out_document', kwargs={
'pk': self.test_document.pk

View File

@@ -67,13 +67,29 @@ class DocumentCheckoutViewTestCase(
)
)
def test_document_check_out_view_no_permission(self):
response = self._request_test_document_check_out_view()
def test_document_check_out_get_view_no_permission(self):
response = self._request_test_document_check_out_get_view()
self.assertEqual(response.status_code, 403)
self.assertFalse(self.test_document.is_checked_out())
def test_document_check_out_view_with_access(self):
def test_document_check_out_get_view_with_access(self):
self.grant_access(
obj=self.test_document, permission=permission_document_check_out
)
response = self._request_test_document_check_out_get_view()
self.assertEqual(response.status_code, 200)
self.assertFalse(self.test_document.is_checked_out())
def test_document_check_out_post_view_no_permission(self):
response = self._request_test_document_check_out_post_view()
self.assertEqual(response.status_code, 403)
self.assertFalse(self.test_document.is_checked_out())
def test_document_check_out_post_view_with_access(self):
self.grant_access(
obj=self.test_document, permission=permission_document_check_out
)
@@ -82,7 +98,7 @@ class DocumentCheckoutViewTestCase(
permission=permission_document_check_out_detail_view
)
response = self._request_test_document_check_out_view()
response = self._request_test_document_check_out_post_view()
self.assertEqual(response.status_code, 302)
self.assertTrue(self.test_document.is_checked_out())

View File

@@ -288,3 +288,218 @@ class SignaturesViewTestCase(
EmbeddedSignature.objects.unsigned_document_versions().count(),
TEST_UNSIGNED_DOCUMENT_COUNT
)
class DetachedSignaturesViewTestCase(
KeyTestMixin, SignatureTestMixin, DetachedSignatureViewTestMixin,
GenericDocumentViewTestCase
):
auto_upload_document = False
def test_detached_signature_create_view_with_no_permission(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures
)
def test_detached_signature_create_view_with_document_access(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
self.grant_access(
obj=self.test_document,
permission=permission_document_version_sign_detached
)
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 200)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures
)
def test_detached_signature_create_view_with_key_access(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
self.grant_access(
obj=self.test_key_private,
permission=permission_key_sign
)
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures
)
def test_detached_signature_create_view_with_full_access(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
self.grant_access(
obj=self.test_document,
permission=permission_document_version_sign_detached
)
self.grant_access(
obj=self.test_key_private,
permission=permission_key_sign
)
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 302)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures + 1
)
def test_signature_download_view_no_permission(self):
self.test_document_path = TEST_DOCUMENT_PATH
self.upload_document()
self._create_test_detached_signature()
response = self._request_test_document_version_signature_download_view()
self.assertEqual(response.status_code, 403)
def test_signature_download_view_with_access(self):
self.test_document_path = TEST_DOCUMENT_PATH
self.upload_document()
self._create_test_detached_signature()
self.grant_access(
obj=self.test_document,
permission=permission_document_version_signature_download
)
self.expected_content_types = ('application/octet-stream; charset=utf-8',)
response = self._request_test_document_version_signature_download_view()
with self.test_signature.signature_file as file_object:
assert_download_response(
self, response=response, content=file_object.read(),
)
def test_signature_upload_view_no_permission(self):
self.test_document_path = TEST_DOCUMENT_PATH
self.upload_document()
response = self._request_test_document_version_signature_upload_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(DetachedSignature.objects.count(), 0)
def test_signature_upload_view_with_access(self):
self.test_document_path = TEST_DOCUMENT_PATH
self.upload_document()
self.grant_access(
obj=self.test_document,
permission=permission_document_version_signature_upload
)
response = self._request_test_document_version_signature_upload_view()
self.assertEqual(response.status_code, 302)
self.assertEqual(DetachedSignature.objects.count(), 1)
class EmbeddedSignaturesViewTestCase(
KeyTestMixin, EmbeddedSignatureViewTestMixin, GenericDocumentViewTestCase
):
auto_upload_document = False
def test_embedded_signature_create_view_with_no_permission(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures
)
def test_embedded_signature_create_view_with_document_access(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
self.grant_access(
obj=self.test_document,
permission=permission_document_version_sign_embedded
)
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 200)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures
)
def test_embedded_signature_create_view_with_key_access(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
self.grant_access(
obj=self.test_key_private,
permission=permission_key_sign
)
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures
)
def test_embedded_signature_create_view_with_full_access(self):
self.upload_document()
self._create_test_key_private()
signatures = self.test_document.latest_version.signatures.count()
self.grant_access(
obj=self.test_document,
permission=permission_document_version_sign_embedded
)
self.grant_access(
obj=self.test_key_private,
permission=permission_key_sign
)
response = self._request_test_document_version_signature_create_view()
self.assertEqual(response.status_code, 302)
self.assertEqual(
self.test_document.latest_version.signatures.count(),
signatures + 1
)