Add first set of document signatures API views
Add list, create, detail and edit API views for detached and embedded signatures. Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
@@ -3,13 +3,116 @@ from __future__ import absolute_import, unicode_literals
|
||||
from django.core.files import File
|
||||
|
||||
from mayan.apps.django_gpg.models import Key
|
||||
from mayan.apps.django_gpg.tests.literals import TEST_KEY_PRIVATE_PASSPHRASE
|
||||
|
||||
from ..models import DetachedSignature
|
||||
|
||||
from .literals import TEST_KEY_FILE, TEST_SIGNATURE_FILE_PATH
|
||||
from .literals import TEST_KEY_FILE_PATH, TEST_SIGNATURE_FILE_PATH
|
||||
|
||||
|
||||
class SignaturesTestMixin(object):
|
||||
class DetachedSignatureAPIViewTestMixin(object):
|
||||
def _request_test_document_signature_detached_create_view(self):
|
||||
return self.post(
|
||||
viewname='rest_api:document-version-signature-detached-list',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk
|
||||
}, data={
|
||||
'key_id': self.test_key_private.key_id,
|
||||
'passphrase': TEST_KEY_PRIVATE_PASSPHRASE
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_document_signature_detached_delete_view(self):
|
||||
return self.delete(
|
||||
viewname='rest_api:detachedsignature-detail',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk,
|
||||
'detached_signature_id': self.test_document_version.signatures.first().pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_document_signature_detached_detail_view(self):
|
||||
return self.get(
|
||||
viewname='rest_api:detachedsignature-detail',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk,
|
||||
'detached_signature_id': self.test_document_version.signatures.first().pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_document_signature_detached_list_view(self):
|
||||
return self.get(
|
||||
viewname='rest_api:document-version-signature-detached-list',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class DetachedSignatureViewTestMixin(object):
|
||||
def _request_test_document_version_signature_download_view(self):
|
||||
return self.get(
|
||||
viewname='signatures:document_version_signature_download',
|
||||
kwargs={'pk': self.test_signature.pk}
|
||||
)
|
||||
|
||||
def _request_test_document_version_signature_upload_view(self):
|
||||
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object:
|
||||
return self.post(
|
||||
viewname='signatures:document_version_signature_upload',
|
||||
kwargs={'pk': self.test_document.latest_version.pk},
|
||||
data={'signature_file': file_object}
|
||||
)
|
||||
|
||||
|
||||
class EmbeddedSignatureAPIViewTestMixin(object):
|
||||
def _request_test_document_signature_embedded_create_view(self):
|
||||
return self.post(
|
||||
viewname='rest_api:document-version-signature-embedded-list',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk
|
||||
}, data={
|
||||
'key_id': self.test_key_private.key_id,
|
||||
'passphrase': TEST_KEY_PRIVATE_PASSPHRASE
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_document_signature_embedded_delete_view(self):
|
||||
return self.delete(
|
||||
viewname='rest_api:embeddedsignature-detail',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk,
|
||||
'embedded_signature_id': self.test_document_version.signatures.first().pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_document_signature_embedded_detail_view(self):
|
||||
return self.get(
|
||||
viewname='rest_api:embeddedsignature-detail',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk,
|
||||
'embedded_signature_id': self.test_document_version.signatures.first().pk
|
||||
}
|
||||
)
|
||||
|
||||
def _request_test_document_signature_embedded_list_view(self):
|
||||
return self.get(
|
||||
viewname='rest_api:document-version-signature-embedded-list',
|
||||
kwargs={
|
||||
'document_id': self.test_document.pk,
|
||||
'document_version_id': self.test_document_version.pk
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class SignatureTestMixin(object):
|
||||
def _create_test_detached_signature(self):
|
||||
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object:
|
||||
self.test_signature = DetachedSignature.objects.create(
|
||||
@@ -17,6 +120,33 @@ class SignaturesTestMixin(object):
|
||||
signature_file=File(file_object)
|
||||
)
|
||||
|
||||
def _create_test_key(self):
|
||||
with open(TEST_KEY_FILE, mode='rb') as file_object:
|
||||
self.test_key = Key.objects.create(key_data=file_object.read())
|
||||
def _create_test_public_key(self):
|
||||
with open(TEST_KEY_FILE_PATH, mode='rb') as file_object:
|
||||
self.test_key_public = Key.objects.create(
|
||||
key_data=file_object.read()
|
||||
)
|
||||
|
||||
|
||||
class SignatureViewTestMixin(object):
|
||||
def _request_test_document_version_signature_delete_view(self):
|
||||
return self.post(
|
||||
viewname='signatures:document_version_signature_delete',
|
||||
kwargs={'pk': self.test_signature.pk}
|
||||
)
|
||||
|
||||
def _request_test_document_version_signature_details_view(self):
|
||||
return self.get(
|
||||
viewname='signatures:document_version_signature_details',
|
||||
kwargs={'pk': self.test_signature.pk}
|
||||
)
|
||||
|
||||
def _request_test_document_version_signature_list_view(self, document):
|
||||
return self.get(
|
||||
viewname='signatures:document_version_signature_list',
|
||||
kwargs={'pk': self.test_document.latest_version.pk}
|
||||
)
|
||||
|
||||
def _request_all_test_document_version_signature_verify_view(self):
|
||||
return self.post(
|
||||
viewname='signatures:all_document_version_signature_verify'
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user