Fix and improve the document_signatures test
This commit is contained in:
@@ -8,9 +8,16 @@ from django.utils import unittest
|
||||
|
||||
from documents.literals import VERSION_UPDATE_MAJOR, RELEASE_LEVEL_FINAL
|
||||
from documents.models import Document, DocumentType
|
||||
from django_gpg.api import SIGNATURE_STATE_VALID
|
||||
from django_gpg.runtime import gpg
|
||||
|
||||
from .models import DocumentVersionSignature
|
||||
|
||||
TEST_DOCUMENT_PATH = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'mayan_11_1.pdf')
|
||||
TEST_SIGNED_DOCUMENT_PATH = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'mayan_11_1.pdf.gpg')
|
||||
TEST_SIGNATURE_FILE_PATH = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'mayan_11_1.pdf.sig')
|
||||
TEST_KEY_FILE = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'key0x5F3F7F75D210724D.asc')
|
||||
|
||||
|
||||
class DocumentTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
@@ -23,25 +30,28 @@ class DocumentTestCase(unittest.TestCase):
|
||||
)
|
||||
self.document.save()
|
||||
|
||||
file_object = open(os.path.join(settings.SITE_ROOT, 'contrib', 'sample_documents', 'mayan_11_1.pdf'))
|
||||
new_version = self.document.new_version(file=File(file_object, name='mayan_11_1.pdf'))
|
||||
file_object.close()
|
||||
with open(TEST_DOCUMENT_PATH) as file_object:
|
||||
new_version = self.document.new_version(file=File(file_object, name='mayan_11_1.pdf'))
|
||||
|
||||
with open(TEST_KEY_FILE) as file_object:
|
||||
gpg.import_key(file_object.read())
|
||||
|
||||
def test_document_no_signature(self):
|
||||
self.failUnlessEqual(DocumentVersionSignature.objects.has_detached_signature(self.document), False)
|
||||
|
||||
def test_new_document_version_signed(self):
|
||||
file_object = open(os.path.join(settings.SITE_ROOT, 'contrib', 'sample_documents', 'mayan_11_1.pdf.gpg'))
|
||||
new_version_data = {
|
||||
'comment': 'test comment 1',
|
||||
'version_update': VERSION_UPDATE_MAJOR,
|
||||
'release_level': RELEASE_LEVEL_FINAL,
|
||||
'serial': 0,
|
||||
}
|
||||
with open(TEST_SIGNED_DOCUMENT_PATH) as file_object:
|
||||
new_version_data = {
|
||||
'comment': 'test comment 1',
|
||||
'version_update': VERSION_UPDATE_MAJOR,
|
||||
'release_level': RELEASE_LEVEL_FINAL,
|
||||
'serial': 0,
|
||||
}
|
||||
|
||||
self.document.new_version(file=File(file_object, name='mayan_11_1.pdf.gpg'), **new_version_data)
|
||||
|
||||
self.failUnlessEqual(DocumentVersionSignature.objects.has_detached_signature(self.document), False)
|
||||
# self.failUnlessEqual(DocumentVersionSignature.objects.verify_signature(self.document).status, SIGNATURE_STATE_VALID)
|
||||
# TODO: verify_signature is failing, check
|
||||
self.failUnlessEqual(DocumentVersionSignature.objects.verify_signature(self.document).status, SIGNATURE_STATE_VALID)
|
||||
|
||||
def test_detached_signatures(self):
|
||||
new_version_data = {
|
||||
@@ -50,20 +60,17 @@ class DocumentTestCase(unittest.TestCase):
|
||||
'release_level': RELEASE_LEVEL_FINAL,
|
||||
'serial': 0,
|
||||
}
|
||||
file_object = open(os.path.join(settings.SITE_ROOT, 'contrib', 'sample_documents', 'mayan_11_1.pdf'))
|
||||
new_version = self.document.new_version(file=File(file_object), **new_version_data)
|
||||
file_object.close()
|
||||
with open(TEST_DOCUMENT_PATH) as file_object:
|
||||
self.document.new_version(file=File(file_object), **new_version_data)
|
||||
|
||||
# GPGVerificationError
|
||||
self.failUnlessEqual(DocumentVersionSignature.objects.verify_signature(self.document), None)
|
||||
|
||||
file_object = open(os.path.join(settings.SITE_ROOT, 'contrib', 'sample_documents', 'mayan_11_1.pdf.sig'), 'rb')
|
||||
DocumentVersionSignature.objects.add_detached_signature(self.document, File(file_object))
|
||||
file_object.close()
|
||||
with open(TEST_SIGNATURE_FILE_PATH, 'rb') as file_object:
|
||||
DocumentVersionSignature.objects.add_detached_signature(self.document, File(file_object))
|
||||
|
||||
self.failUnlessEqual(DocumentVersionSignature.objects.has_detached_signature(self.document), True)
|
||||
# self.failUnlessEqual(DocumentVersionSignature.objects.verify_signature(self.document).status, SIGNATURE_STATE_VALID)
|
||||
# TODO: verify_signature is failing, check
|
||||
self.failUnlessEqual(DocumentVersionSignature.objects.verify_signature(self.document).status, SIGNATURE_STATE_VALID)
|
||||
|
||||
def tearDown(self):
|
||||
self.document.delete()
|
||||
|
||||
Reference in New Issue
Block a user