added checksums for archived documents.

This commit is contained in:
jonaswinkler
2020-11-29 12:31:26 +01:00
parent fdaf419a7e
commit 24767f62c7
5 changed files with 57 additions and 15 deletions

View File

@@ -67,30 +67,34 @@ def check_sanity():
f"Original of document {doc.pk} does not exist."))
else:
present_files.remove(os.path.normpath(doc.source_path))
checksum = None
try:
with doc.source_file as f:
checksum = hashlib.md5(f.read()).hexdigest()
except OSError as e:
messages.append(SanityError(
f"Cannot read original file of document {doc.pk}: {e}"))
if checksum and not checksum == doc.checksum:
messages.append(SanityError(
f"Checksum mismatch of document {doc.pk}. "
f"Stored: {doc.checksum}, actual: {checksum}."
))
else:
if not checksum == doc.checksum:
messages.append(SanityError(
f"Checksum mismatch of document {doc.pk}. "
f"Stored: {doc.checksum}, actual: {checksum}."
))
if os.path.isfile(doc.archive_path):
present_files.remove(os.path.normpath(doc.archive_path))
try:
with doc.archive_file as f:
f.read()
checksum = hashlib.md5(f.read()).hexdigest()
except OSError as e:
messages.append(SanityError(
f"Cannot read archive file of document {doc.pk}: {e}"
))
present_files.remove(os.path.normpath(doc.archive_path))
else:
if not checksum == doc.archive_checksum:
messages.append(SanityError(
f"Checksum mismatch of document {doc.pk}. "
f"Stored: {doc.checksum}, actual: {checksum}."
))
if not doc.content:
messages.append(SanityWarning(