Improve document signatures tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
@@ -54,9 +54,11 @@ class SignatureTestMixin(object):
|
||||
signature_file=File(file_object)
|
||||
)
|
||||
|
||||
def _create_test_key_private(self):
|
||||
def _create_test_key_public(self):
|
||||
with open(TEST_KEY_FILE_PATH, mode='rb') as file_object:
|
||||
self.test_key = Key.objects.create(key_data=file_object.read())
|
||||
self.test_key_public = Key.objects.create(
|
||||
key_data=file_object.read()
|
||||
)
|
||||
|
||||
|
||||
class SignatureViewTestMixin(object):
|
||||
|
||||
@@ -3,7 +3,7 @@ from __future__ import unicode_literals
|
||||
from django.urls import reverse
|
||||
|
||||
from mayan.apps.documents.tests import (
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_PATH
|
||||
GenericDocumentViewTestCase, TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
from ..links import (
|
||||
@@ -62,7 +62,7 @@ class DocumentSignatureLinksTestCase(
|
||||
)
|
||||
|
||||
def test_document_version_signature_delete_link_no_permission(self):
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -77,7 +77,7 @@ class DocumentSignatureLinksTestCase(
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_document_version_signature_delete_link_with_permission(self):
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
|
||||
@@ -7,7 +7,7 @@ from mayan.apps.django_gpg.tests.literals import TEST_KEY_PRIVATE_PASSPHRASE
|
||||
from mayan.apps.django_gpg.tests.mixins import KeyTestMixin
|
||||
from mayan.apps.documents.models import DocumentVersion
|
||||
from mayan.apps.documents.tests import (
|
||||
GenericDocumentTestCase, TEST_DOCUMENT_PATH
|
||||
GenericDocumentTestCase, TEST_DOCUMENT_PATH, TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
from ..models import DetachedSignature, EmbeddedSignature
|
||||
@@ -48,14 +48,14 @@ class DocumentSignaturesTestCase(SignatureTestMixin, GenericDocumentTestCase):
|
||||
self.assertEqual(signature.key_id, TEST_KEY_PUBLIC_ID)
|
||||
self.assertEqual(signature.signature_id, None)
|
||||
|
||||
self._create_test_key_private()
|
||||
self._create_test_key_public()
|
||||
|
||||
signature = EmbeddedSignature.objects.first()
|
||||
|
||||
self.assertEqual(signature.signature_id, TEST_SIGNATURE_ID)
|
||||
|
||||
def test_embedded_signature_post_no_key_verify(self):
|
||||
self._create_test_key_private()
|
||||
self._create_test_key_public()
|
||||
self.test_document_path = TEST_SIGNED_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
@@ -69,14 +69,14 @@ class DocumentSignaturesTestCase(SignatureTestMixin, GenericDocumentTestCase):
|
||||
self.assertEqual(signature.key_id, TEST_KEY_PUBLIC_ID)
|
||||
self.assertEqual(signature.signature_id, TEST_SIGNATURE_ID)
|
||||
|
||||
self.test_key.delete()
|
||||
self.test_key_public.delete()
|
||||
|
||||
signature = EmbeddedSignature.objects.first()
|
||||
|
||||
self.assertEqual(signature.signature_id, None)
|
||||
|
||||
def test_embedded_signature_with_key(self):
|
||||
self._create_test_key_private()
|
||||
self._create_test_key_public()
|
||||
self.test_document_path = TEST_SIGNED_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
@@ -90,12 +90,12 @@ class DocumentSignaturesTestCase(SignatureTestMixin, GenericDocumentTestCase):
|
||||
)
|
||||
self.assertEqual(signature.key_id, TEST_KEY_PUBLIC_ID)
|
||||
self.assertEqual(
|
||||
signature.public_key_fingerprint, self.test_key.fingerprint
|
||||
signature.public_key_fingerprint, self.test_key_public.fingerprint
|
||||
)
|
||||
self.assertEqual(signature.signature_id, TEST_SIGNATURE_ID)
|
||||
|
||||
def test_detached_signature_no_key(self):
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -109,7 +109,7 @@ class DocumentSignaturesTestCase(SignatureTestMixin, GenericDocumentTestCase):
|
||||
self.assertEqual(self.test_signature.public_key_fingerprint, None)
|
||||
|
||||
def test_detached_signature_with_key(self):
|
||||
self._create_test_key_private()
|
||||
self._create_test_key_public()
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
@@ -123,7 +123,7 @@ class DocumentSignaturesTestCase(SignatureTestMixin, GenericDocumentTestCase):
|
||||
self.assertEqual(self.test_signature.key_id, TEST_KEY_PUBLIC_ID)
|
||||
self.assertEqual(
|
||||
self.test_signature.public_key_fingerprint,
|
||||
self.test_key.fingerprint
|
||||
self.test_key_public.fingerprint
|
||||
)
|
||||
|
||||
def test_detached_signature_post_key_verify(self):
|
||||
@@ -141,16 +141,16 @@ class DocumentSignaturesTestCase(SignatureTestMixin, GenericDocumentTestCase):
|
||||
self.assertEqual(self.test_signature.key_id, TEST_KEY_PUBLIC_ID)
|
||||
self.assertEqual(self.test_signature.public_key_fingerprint, None)
|
||||
|
||||
self._create_test_key_private()
|
||||
self._create_test_key_public()
|
||||
|
||||
signature = DetachedSignature.objects.first()
|
||||
|
||||
self.assertEqual(
|
||||
signature.public_key_fingerprint, self.test_key.fingerprint
|
||||
signature.public_key_fingerprint, self.test_key_public.fingerprint
|
||||
)
|
||||
|
||||
def test_detached_signature_post_no_key_verify(self):
|
||||
self._create_test_key_private()
|
||||
self._create_test_key_public()
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
@@ -165,23 +165,23 @@ class DocumentSignaturesTestCase(SignatureTestMixin, GenericDocumentTestCase):
|
||||
self.assertEqual(self.test_signature.key_id, TEST_KEY_PUBLIC_ID)
|
||||
self.assertEqual(
|
||||
self.test_signature.public_key_fingerprint,
|
||||
self.test_key.fingerprint
|
||||
self.test_key_public.fingerprint
|
||||
)
|
||||
|
||||
self.test_key.delete()
|
||||
self.test_key_public.delete()
|
||||
|
||||
signature = DetachedSignature.objects.first()
|
||||
|
||||
self.assertEqual(signature.public_key_fingerprint, None)
|
||||
|
||||
def test_document_no_signature(self):
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self.assertEqual(EmbeddedSignature.objects.count(), 0)
|
||||
|
||||
def test_new_signed_version(self):
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
with open(TEST_SIGNED_DOCUMENT_PATH, mode='rb') as file_object:
|
||||
@@ -209,7 +209,7 @@ class EmbeddedSignaturesTestCase(KeyTestMixin, GenericDocumentTestCase):
|
||||
TEST_UNSIGNED_DOCUMENT_COUNT = 2
|
||||
TEST_SIGNED_DOCUMENT_COUNT = 2
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
for count in range(TEST_UNSIGNED_DOCUMENT_COUNT):
|
||||
self.upload_document()
|
||||
|
||||
@@ -233,7 +233,7 @@ class EmbeddedSignaturesTestCase(KeyTestMixin, GenericDocumentTestCase):
|
||||
TEST_UNSIGNED_DOCUMENT_COUNT = 2
|
||||
TEST_SIGNED_DOCUMENT_COUNT = 2
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
for count in range(TEST_UNSIGNED_DOCUMENT_COUNT):
|
||||
self.upload_document()
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@ from mayan.apps.django_gpg.permissions import permission_key_sign
|
||||
from mayan.apps.django_gpg.tests.mixins import KeyTestMixin
|
||||
from mayan.apps.documents.models import DocumentVersion
|
||||
from mayan.apps.documents.tests import (
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_PATH
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_PATH,
|
||||
TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
from ..models import DetachedSignature, EmbeddedSignature
|
||||
@@ -36,9 +37,7 @@ class SignaturesViewTestCase(
|
||||
auto_upload_document = False
|
||||
|
||||
def test_signature_delete_view_no_permission(self):
|
||||
self._create_test_key_private()
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -53,9 +52,7 @@ class SignaturesViewTestCase(
|
||||
self.assertEqual(DetachedSignature.objects.count(), 1)
|
||||
|
||||
def test_signature_delete_view_with_access(self):
|
||||
self._create_test_key_private()
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -74,9 +71,7 @@ class SignaturesViewTestCase(
|
||||
self.assertEqual(DetachedSignature.objects.count(), 0)
|
||||
|
||||
def test_signature_detail_view_no_permission(self):
|
||||
self._create_test_key_private()
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -85,9 +80,7 @@ class SignaturesViewTestCase(
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_signature_detail_view_with_access(self):
|
||||
self._create_test_key_private()
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -103,40 +96,8 @@ class SignaturesViewTestCase(
|
||||
status_code=200
|
||||
)
|
||||
|
||||
"""
|
||||
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_type = '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_list_view_no_permission(self):
|
||||
self._create_test_key_private()
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -147,9 +108,7 @@ class SignaturesViewTestCase(
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_signature_list_view_with_access(self):
|
||||
self._create_test_key_private()
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -164,30 +123,7 @@ class SignaturesViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.context['object_list'].count(), 1)
|
||||
"""
|
||||
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)
|
||||
"""
|
||||
def test_missing_signature_verify_view_no_permission(self):
|
||||
# Silence converter logging
|
||||
self._silence_logger(name='mayan.apps.converter.backends')
|
||||
@@ -198,7 +134,7 @@ class SignaturesViewTestCase(
|
||||
old_hooks = DocumentVersion._post_save_hooks
|
||||
DocumentVersion._post_save_hooks = {}
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
for count in range(TEST_UNSIGNED_DOCUMENT_COUNT):
|
||||
self.upload_document()
|
||||
|
||||
@@ -231,7 +167,7 @@ class SignaturesViewTestCase(
|
||||
old_hooks = DocumentVersion._post_save_hooks
|
||||
DocumentVersion._post_save_hooks = {}
|
||||
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
for count in range(TEST_UNSIGNED_DOCUMENT_COUNT):
|
||||
self.upload_document()
|
||||
|
||||
@@ -266,6 +202,7 @@ class DetachedSignaturesViewTestCase(
|
||||
auto_upload_document = False
|
||||
|
||||
def test_detached_signature_create_view_with_no_permission(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
@@ -280,6 +217,7 @@ class DetachedSignaturesViewTestCase(
|
||||
)
|
||||
|
||||
def test_detached_signature_create_view_with_document_access(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
@@ -299,6 +237,7 @@ class DetachedSignaturesViewTestCase(
|
||||
)
|
||||
|
||||
def test_detached_signature_create_view_with_key_access(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
@@ -318,6 +257,7 @@ class DetachedSignaturesViewTestCase(
|
||||
)
|
||||
|
||||
def test_detached_signature_create_view_with_full_access(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
@@ -341,7 +281,7 @@ class DetachedSignaturesViewTestCase(
|
||||
)
|
||||
|
||||
def test_signature_download_view_no_permission(self):
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -350,7 +290,7 @@ class DetachedSignaturesViewTestCase(
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_signature_download_view_with_access(self):
|
||||
self.test_document_path = TEST_DOCUMENT_PATH
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
|
||||
self._create_test_detached_signature()
|
||||
@@ -371,6 +311,7 @@ class DetachedSignaturesViewTestCase(
|
||||
|
||||
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()
|
||||
@@ -399,6 +340,7 @@ class EmbeddedSignaturesViewTestCase(
|
||||
auto_upload_document = False
|
||||
|
||||
def test_embedded_signature_create_view_with_no_permission(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
@@ -413,6 +355,7 @@ class EmbeddedSignaturesViewTestCase(
|
||||
)
|
||||
|
||||
def test_embedded_signature_create_view_with_document_access(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
@@ -432,6 +375,7 @@ class EmbeddedSignaturesViewTestCase(
|
||||
)
|
||||
|
||||
def test_embedded_signature_create_view_with_key_access(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
@@ -451,6 +395,7 @@ class EmbeddedSignaturesViewTestCase(
|
||||
)
|
||||
|
||||
def test_embedded_signature_create_view_with_full_access(self):
|
||||
self.test_document_path = TEST_SMALL_DOCUMENT_PATH
|
||||
self.upload_document()
|
||||
self._create_test_key_private()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user