From 9a0dd8c192cc9bc3f545ca969dedd5dd34032ada Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Fri, 1 Apr 2016 12:43:06 -0400 Subject: [PATCH] Add embedded signing test. --- .../document_signatures/tests/test_models.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/mayan/apps/document_signatures/tests/test_models.py b/mayan/apps/document_signatures/tests/test_models.py index 8e9f61c299..30b57f8b02 100644 --- a/mayan/apps/document_signatures/tests/test_models.py +++ b/mayan/apps/document_signatures/tests/test_models.py @@ -1,11 +1,13 @@ from __future__ import unicode_literals +import hashlib import time from django.core.files import File from django.test import TestCase, override_settings from django_gpg.models import Key +from django_gpg.tests.literals import TEST_KEY_DATA, TEST_KEY_PASSPHRASE from documents.models import DocumentType, DocumentVersion from documents.tests import TEST_DOCUMENT_PATH, TEST_DOCUMENT_TYPE @@ -308,3 +310,36 @@ class EmbeddedSignaturesTestCase(TestCase): EmbeddedSignature.objects.unsigned_document_versions().count(), TEST_UNSIGNED_DOCUMENT_COUNT ) + + def test_signing(self): + key = Key.objects.create(key_data=TEST_KEY_DATA) + + with open(TEST_DOCUMENT_PATH) as file_object: + document = self.document_type.new_document( + file_object=file_object + ) + + with document.latest_version.open() as file_object: + file_object.seek(0, 2) + original_size = file_object.tell() + file_object.seek(0) + original_hash = hashlib.sha256(file_object.read()).hexdigest() + + new_version = EmbeddedSignature.objects.sign_document_version( + document_version=document.latest_version, key=key, + passphrase=TEST_KEY_PASSPHRASE + ) + + self.assertEqual(EmbeddedSignature.objects.count(), 1) + + with new_version.open() as file_object: + document_content_hash = hashlib.sha256(file_object.read()).hexdigest() + + with new_version.open() as file_object: + file_object.seek(0, 2) + new_size = file_object.tell() + file_object.seek(0) + new_hash = hashlib.sha256(file_object.read()).hexdigest() + + self.assertEqual(original_size, new_size) + self.assertEqual(origianl_hash, new_hash)