mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-09 09:58:20 -05:00
testing the importer
This commit is contained in:
parent
1e9e347f15
commit
bfbdd6e198
@ -9,10 +9,11 @@ from django.test import TestCase, override_settings
|
|||||||
|
|
||||||
from documents.management.commands import document_exporter
|
from documents.management.commands import document_exporter
|
||||||
from documents.models import Document, Tag, DocumentType, Correspondent
|
from documents.models import Document, Tag, DocumentType, Correspondent
|
||||||
from documents.tests.utils import DirectoriesMixin
|
from documents.sanity_checker import check_sanity
|
||||||
|
from documents.tests.utils import DirectoriesMixin, paperless_environment
|
||||||
|
|
||||||
|
|
||||||
class TestExporter(DirectoriesMixin, TestCase):
|
class TestExportImport(DirectoriesMixin, TestCase):
|
||||||
|
|
||||||
@override_settings(
|
@override_settings(
|
||||||
PASSPHRASE="test"
|
PASSPHRASE="test"
|
||||||
@ -23,8 +24,8 @@ class TestExporter(DirectoriesMixin, TestCase):
|
|||||||
|
|
||||||
file = os.path.join(self.dirs.originals_dir, "0000001.pdf")
|
file = os.path.join(self.dirs.originals_dir, "0000001.pdf")
|
||||||
|
|
||||||
Document.objects.create(checksum="42995833e01aea9b3edee44bbfdd7ce1", archive_checksum="62acb0bcbfbcaa62ca6ad3668e4e404b", title="wow", filename="0000001.pdf", id=1, mime_type="application/pdf")
|
Document.objects.create(content="Content", checksum="42995833e01aea9b3edee44bbfdd7ce1", archive_checksum="62acb0bcbfbcaa62ca6ad3668e4e404b", title="wow", filename="0000001.pdf", id=1, mime_type="application/pdf")
|
||||||
Document.objects.create(checksum="9c9691e51741c1f4f41a20896af31770", title="wow", filename="0000002.pdf.gpg", id=2, mime_type="application/pdf", storage_type=Document.STORAGE_TYPE_GPG)
|
Document.objects.create(content="Content", checksum="9c9691e51741c1f4f41a20896af31770", title="wow", filename="0000002.pdf.gpg", id=2, mime_type="application/pdf", storage_type=Document.STORAGE_TYPE_GPG)
|
||||||
Tag.objects.create(name="t")
|
Tag.objects.create(name="t")
|
||||||
DocumentType.objects.create(name="dt")
|
DocumentType.objects.create(name="dt")
|
||||||
Correspondent.objects.create(name="c")
|
Correspondent.objects.create(name="c")
|
||||||
@ -56,6 +57,15 @@ class TestExporter(DirectoriesMixin, TestCase):
|
|||||||
checksum = hashlib.md5(f.read()).hexdigest()
|
checksum = hashlib.md5(f.read()).hexdigest()
|
||||||
self.assertEqual(checksum, element['fields']['archive_checksum'])
|
self.assertEqual(checksum, element['fields']['archive_checksum'])
|
||||||
|
|
||||||
Document.objects.create(checksum="AAAAAAAAAAAAAAAAA", title="wow", filename="0000004.pdf", id=3, mime_type="application/pdf")
|
with paperless_environment() as dirs:
|
||||||
|
call_command('document_importer', target)
|
||||||
|
messages = check_sanity()
|
||||||
|
# everything is alright after the test
|
||||||
|
self.assertEqual(len(messages), 0, str([str(m) for m in messages]))
|
||||||
|
|
||||||
|
def test_export_missing_files(self):
|
||||||
|
|
||||||
|
target = tempfile.mkdtemp()
|
||||||
|
call_command('document_exporter', target)
|
||||||
|
Document.objects.create(checksum="AAAAAAAAAAAAAAAAA", title="wow", filename="0000004.pdf", id=3, mime_type="application/pdf")
|
||||||
self.assertRaises(FileNotFoundError, call_command, 'document_exporter', target)
|
self.assertRaises(FileNotFoundError, call_command, 'document_exporter', target)
|
||||||
|
@ -2,6 +2,7 @@ import os
|
|||||||
import shutil
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
from contextlib import contextmanager
|
||||||
|
|
||||||
from django.test import override_settings
|
from django.test import override_settings
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ def setup_directories():
|
|||||||
os.makedirs(dirs.thumbnail_dir, exist_ok=True)
|
os.makedirs(dirs.thumbnail_dir, exist_ok=True)
|
||||||
os.makedirs(dirs.archive_dir, exist_ok=True)
|
os.makedirs(dirs.archive_dir, exist_ok=True)
|
||||||
|
|
||||||
override_settings(
|
dirs.settings_override = override_settings(
|
||||||
DATA_DIR=dirs.data_dir,
|
DATA_DIR=dirs.data_dir,
|
||||||
SCRATCH_DIR=dirs.scratch_dir,
|
SCRATCH_DIR=dirs.scratch_dir,
|
||||||
MEDIA_ROOT=dirs.media_dir,
|
MEDIA_ROOT=dirs.media_dir,
|
||||||
@ -35,7 +36,8 @@ def setup_directories():
|
|||||||
INDEX_DIR=dirs.index_dir,
|
INDEX_DIR=dirs.index_dir,
|
||||||
MODEL_FILE=os.path.join(dirs.data_dir, "classification_model.pickle")
|
MODEL_FILE=os.path.join(dirs.data_dir, "classification_model.pickle")
|
||||||
|
|
||||||
).enable()
|
)
|
||||||
|
dirs.settings_override.enable()
|
||||||
|
|
||||||
return dirs
|
return dirs
|
||||||
|
|
||||||
@ -45,6 +47,18 @@ def remove_dirs(dirs):
|
|||||||
shutil.rmtree(dirs.data_dir, ignore_errors=True)
|
shutil.rmtree(dirs.data_dir, ignore_errors=True)
|
||||||
shutil.rmtree(dirs.scratch_dir, ignore_errors=True)
|
shutil.rmtree(dirs.scratch_dir, ignore_errors=True)
|
||||||
shutil.rmtree(dirs.consumption_dir, ignore_errors=True)
|
shutil.rmtree(dirs.consumption_dir, ignore_errors=True)
|
||||||
|
dirs.settings_override.disable()
|
||||||
|
|
||||||
|
|
||||||
|
@contextmanager
|
||||||
|
def paperless_environment():
|
||||||
|
dirs = None
|
||||||
|
try:
|
||||||
|
dirs = setup_directories()
|
||||||
|
yield dirs
|
||||||
|
finally:
|
||||||
|
if dirs:
|
||||||
|
remove_dirs(dirs)
|
||||||
|
|
||||||
|
|
||||||
class DirectoriesMixin:
|
class DirectoriesMixin:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user