]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Merge tests
authorshamoon <4887959+shamoon@users.noreply.github.com>
Wed, 9 Apr 2025 00:06:41 +0000 (17:06 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Wed, 9 Apr 2025 00:06:41 +0000 (17:06 -0700)
119 files changed:
pyproject.toml
src/documents/tests/__init__.py [deleted file]
src/documents/tests/test_checks.py [deleted file]
src/paperless/tests/conftest.py [moved from src/documents/tests/conftest.py with 100% similarity]
src/paperless/tests/data/v1.17.4.model.pickle [moved from src/documents/tests/data/v1.17.4.model.pickle with 100% similarity]
src/paperless/tests/examples/no-text.png [moved from src/documents/tests/examples/no-text.png with 100% similarity]
src/paperless/tests/factories.py [moved from src/documents/tests/factories.py with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-128-asn-too-large.pdf [moved from src/documents/tests/samples/barcodes/barcode-128-asn-too-large.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-128-custom.pdf [moved from src/documents/tests/samples/barcodes/barcode-128-custom.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-39-asn-123.pdf [moved from src/documents/tests/samples/barcodes/barcode-39-asn-123.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-39-asn-custom-prefix.pdf [moved from src/documents/tests/samples/barcodes/barcode-39-asn-custom-prefix.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-39-asn-invalid.pdf [moved from src/documents/tests/samples/barcodes/barcode-39-asn-invalid.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-39-custom.pdf [moved from src/documents/tests/samples/barcodes/barcode-39-custom.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-fax-image.pdf [moved from src/documents/tests/samples/barcodes/barcode-fax-image.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-qr-asn-000123-upscale-dpi.pdf [moved from src/documents/tests/samples/barcodes/barcode-qr-asn-000123-upscale-dpi.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/barcode-qr-custom.pdf [moved from src/documents/tests/samples/barcodes/barcode-qr-custom.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/many-qr-codes.pdf [moved from src/documents/tests/samples/barcodes/many-qr-codes.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-double.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t-double.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-middle-alpha.tiff [moved from src/documents/tests/samples/barcodes/patch-code-t-middle-alpha.tiff with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-middle-distorted.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t-middle-distorted.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-middle-fuzzy.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t-middle-fuzzy.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-middle-reverse.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t-middle-reverse.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-middle-unreadable.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t-middle-unreadable.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-middle.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t-middle.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-middle.tiff [moved from src/documents/tests/samples/barcodes/patch-code-t-middle.tiff with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t-qr.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t-qr.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/patch-code-t.pdf [moved from src/documents/tests/samples/barcodes/patch-code-t.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/several-patcht-codes.pdf [moved from src/documents/tests/samples/barcodes/several-patcht-codes.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/split-by-asn-1.pdf [moved from src/documents/tests/samples/barcodes/split-by-asn-1.pdf with 100% similarity]
src/paperless/tests/samples/barcodes/split-by-asn-2.pdf [moved from src/documents/tests/samples/barcodes/split-by-asn-2.pdf with 100% similarity]
src/paperless/tests/samples/documents/archive/0000001.pdf [moved from src/documents/tests/samples/documents/archive/0000001.pdf with 100% similarity]
src/paperless/tests/samples/documents/originals/0000001.pdf [moved from src/documents/tests/samples/documents/originals/0000001.pdf with 100% similarity]
src/paperless/tests/samples/documents/originals/0000002.pdf [moved from src/documents/tests/samples/documents/originals/0000002.pdf with 100% similarity]
src/paperless/tests/samples/documents/originals/0000003.pdf [moved from src/documents/tests/samples/documents/originals/0000003.pdf with 100% similarity]
src/paperless/tests/samples/documents/originals/0000004.pdf.gpg [moved from src/documents/tests/samples/documents/originals/0000004.pdf.gpg with 100% similarity]
src/paperless/tests/samples/documents/originals/0000005.pdf [moved from src/documents/tests/samples/documents/originals/0000005.pdf with 100% similarity]
src/paperless/tests/samples/documents/originals/0000006.pdf [moved from src/documents/tests/samples/documents/originals/0000006.pdf with 100% similarity]
src/paperless/tests/samples/documents/thumbnails/0000001.webp [moved from src/documents/tests/samples/documents/thumbnails/0000001.webp with 100% similarity]
src/paperless/tests/samples/documents/thumbnails/0000002.webp [moved from src/documents/tests/samples/documents/thumbnails/0000002.webp with 100% similarity]
src/paperless/tests/samples/documents/thumbnails/0000003.webp [moved from src/documents/tests/samples/documents/thumbnails/0000003.webp with 100% similarity]
src/paperless/tests/samples/documents/thumbnails/0000004.webp.gpg [moved from src/documents/tests/samples/documents/thumbnails/0000004.webp.gpg with 100% similarity]
src/paperless/tests/samples/double-sided-even.pdf [moved from src/documents/tests/samples/double-sided-even.pdf with 100% similarity]
src/paperless/tests/samples/double-sided-odd.pdf [moved from src/documents/tests/samples/double-sided-odd.pdf with 100% similarity]
src/paperless/tests/samples/eml_with_umlaut.eml [moved from src/documents/tests/samples/eml_with_umlaut.eml with 100% similarity]
src/paperless/tests/samples/invalid_pdf.pdf [moved from src/documents/tests/samples/invalid_pdf.pdf with 100% similarity]
src/paperless/tests/samples/password-is-test.pdf [moved from src/documents/tests/samples/password-is-test.pdf with 100% similarity]
src/paperless/tests/samples/simple-noalpha.png [moved from src/documents/tests/samples/simple-noalpha.png with 100% similarity]
src/paperless/tests/samples/simple.jpg [moved from src/documents/tests/samples/simple.jpg with 100% similarity]
src/paperless/tests/samples/simple.pdf [moved from src/documents/tests/samples/simple.pdf with 100% similarity]
src/paperless/tests/samples/simple.png [moved from src/documents/tests/samples/simple.png with 100% similarity]
src/paperless/tests/samples/simple.tiff [moved from src/documents/tests/samples/simple.tiff with 100% similarity]
src/paperless/tests/samples/simple.txt [moved from src/documents/tests/samples/simple.txt with 100% similarity]
src/paperless/tests/samples/simple.zip [moved from src/documents/tests/samples/simple.zip with 100% similarity]
src/paperless/tests/samples/test_with_bom.pdf [moved from src/documents/tests/samples/test_with_bom.pdf with 100% similarity]
src/paperless/tests/test_admin.py [moved from src/documents/tests/test_admin.py with 98% similarity]
src/paperless/tests/test_api_app_config.py [moved from src/documents/tests/test_api_app_config.py with 98% similarity]
src/paperless/tests/test_api_bulk_download.py [moved from src/documents/tests/test_api_bulk_download.py with 99% similarity]
src/paperless/tests/test_api_bulk_edit.py [moved from src/documents/tests/test_api_bulk_edit.py with 99% similarity]
src/paperless/tests/test_api_custom_fields.py [moved from src/documents/tests/test_api_custom_fields.py with 99% similarity]
src/paperless/tests/test_api_documents.py [moved from src/documents/tests/test_api_documents.py with 99% similarity]
src/paperless/tests/test_api_filter_by_custom_fields.py [moved from src/documents/tests/test_api_filter_by_custom_fields.py with 99% similarity]
src/paperless/tests/test_api_objects.py [moved from src/documents/tests/test_api_objects.py with 99% similarity]
src/paperless/tests/test_api_permissions.py [moved from src/documents/tests/test_api_permissions.py with 99% similarity]
src/paperless/tests/test_api_profile.py [moved from src/documents/tests/test_api_profile.py with 99% similarity]
src/paperless/tests/test_api_remote_version.py [moved from src/documents/tests/test_api_remote_version.py with 100% similarity]
src/paperless/tests/test_api_schema.py [moved from src/documents/tests/test_api_schema.py with 100% similarity]
src/paperless/tests/test_api_search.py [moved from src/documents/tests/test_api_search.py with 99% similarity]
src/paperless/tests/test_api_status.py [moved from src/documents/tests/test_api_status.py with 100% similarity]
src/paperless/tests/test_api_tasks.py [moved from src/documents/tests/test_api_tasks.py with 99% similarity]
src/paperless/tests/test_api_trash.py [moved from src/documents/tests/test_api_trash.py with 100% similarity]
src/paperless/tests/test_api_uisettings.py [moved from src/documents/tests/test_api_uisettings.py with 98% similarity]
src/paperless/tests/test_api_workflows.py [moved from src/documents/tests/test_api_workflows.py with 99% similarity]
src/paperless/tests/test_barcodes.py [moved from src/documents/tests/test_barcodes.py with 99% similarity]
src/paperless/tests/test_bulk_edit.py [moved from src/documents/tests/test_bulk_edit.py with 99% similarity]
src/paperless/tests/test_checks.py
src/paperless/tests/test_classifier.py [moved from src/documents/tests/test_classifier.py with 99% similarity]
src/paperless/tests/test_consumer.py [moved from src/documents/tests/test_consumer.py with 99% similarity]
src/paperless/tests/test_date_parsing.py [moved from src/documents/tests/test_date_parsing.py with 100% similarity]
src/paperless/tests/test_delayedquery.py [moved from src/documents/tests/test_delayedquery.py with 100% similarity]
src/paperless/tests/test_document_model.py [moved from src/documents/tests/test_document_model.py with 100% similarity]
src/paperless/tests/test_double_sided.py [moved from src/documents/tests/test_double_sided.py with 98% similarity]
src/paperless/tests/test_file_handling.py [moved from src/documents/tests/test_file_handling.py with 99% similarity]
src/paperless/tests/test_index.py [moved from src/documents/tests/test_index.py with 98% similarity]
src/paperless/tests/test_management.py [moved from src/documents/tests/test_management.py with 98% similarity]
src/paperless/tests/test_management_consumer.py [moved from src/documents/tests/test_management_consumer.py with 99% similarity]
src/paperless/tests/test_management_exporter.py [moved from src/documents/tests/test_management_exporter.py with 99% similarity]
src/paperless/tests/test_management_fuzzy.py [moved from src/documents/tests/test_management_fuzzy.py with 100% similarity]
src/paperless/tests/test_management_importer.py [moved from src/documents/tests/test_management_importer.py with 98% similarity]
src/paperless/tests/test_management_retagger.py [moved from src/documents/tests/test_management_retagger.py with 99% similarity]
src/paperless/tests/test_management_superuser.py [moved from src/documents/tests/test_management_superuser.py with 99% similarity]
src/paperless/tests/test_management_thumbnails.py [moved from src/documents/tests/test_management_thumbnails.py with 96% similarity]
src/paperless/tests/test_matchables.py [moved from src/documents/tests/test_matchables.py with 100% similarity]
src/paperless/tests/test_migration_archive_files.py [moved from src/documents/tests/test_migration_archive_files.py with 99% similarity]
src/paperless/tests/test_migration_consumption_templates.py [moved from src/documents/tests/test_migration_consumption_templates.py with 97% similarity]
src/paperless/tests/test_migration_custom_field_selects.py [moved from src/documents/tests/test_migration_custom_field_selects.py with 98% similarity]
src/paperless/tests/test_migration_customfields.py [moved from src/documents/tests/test_migration_customfields.py with 97% similarity]
src/paperless/tests/test_migration_document_pages_count.py [moved from src/documents/tests/test_migration_document_pages_count.py with 94% similarity]
src/paperless/tests/test_migration_encrypted_webp_conversion.py [moved from src/documents/tests/test_migration_encrypted_webp_conversion.py with 99% similarity]
src/paperless/tests/test_migration_mime_type.py [moved from src/documents/tests/test_migration_mime_type.py with 96% similarity]
src/paperless/tests/test_migration_remove_null_characters.py [moved from src/documents/tests/test_migration_remove_null_characters.py with 83% similarity]
src/paperless/tests/test_migration_storage_path_template.py [moved from src/documents/tests/test_migration_storage_path_template.py with 95% similarity]
src/paperless/tests/test_migration_tag_colors.py [moved from src/documents/tests/test_migration_tag_colors.py with 93% similarity]
src/paperless/tests/test_migration_webp_conversion.py [moved from src/documents/tests/test_migration_webp_conversion.py with 99% similarity]
src/paperless/tests/test_migration_workflows.py [moved from src/documents/tests/test_migration_workflows.py with 99% similarity]
src/paperless/tests/test_models.py [moved from src/documents/tests/test_models.py with 100% similarity]
src/paperless/tests/test_parsers.py [moved from src/documents/tests/test_parsers.py with 100% similarity]
src/paperless/tests/test_remote_user.py
src/paperless/tests/test_sanity_check.py [moved from src/documents/tests/test_sanity_check.py with 99% similarity]
src/paperless/tests/test_task_signals.py [moved from src/documents/tests/test_task_signals.py with 99% similarity]
src/paperless/tests/test_tasks.py [moved from src/documents/tests/test_tasks.py with 98% similarity]
src/paperless/tests/test_views.py [moved from src/documents/tests/test_views.py with 99% similarity]
src/paperless/tests/test_workflows.py [moved from src/documents/tests/test_workflows.py with 99% similarity]
src/paperless/tests/utils.py [moved from src/documents/tests/utils.py with 100% similarity]
src/paperless_mail/tests/test_api.py
src/paperless_mail/tests/test_mail.py
src/paperless_mail/tests/test_parsers_live.py
src/paperless_tesseract/tests/test_parser.py
src/paperless_tesseract/tests/test_parser_custom_settings.py
src/paperless_tika/tests/test_live_tika.py

index 01445a5a74acb85cfba0747fa8069ba62ee08c97..ada6a23bad03245ec1a8a75fd18dadc47e5a3dc8 100644 (file)
@@ -203,58 +203,55 @@ lint.per-file-ignores."docker/wait-for-redis.py" = [
 lint.per-file-ignores."src/documents/migrations/1012_fix_archive_files.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_consumer.py" = [
-  "PTH",
-] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_file_handling.py" = [
+lint.per-file-ignores."src/paperless/checks.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_management.py" = [
+lint.per-file-ignores."src/paperless/file_handling.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_management_consumer.py" = [
+lint.per-file-ignores."src/paperless/management/commands/document_consumer.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_management_exporter.py" = [
+lint.per-file-ignores."src/paperless/management/commands/document_exporter.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_migration_archive_files.py" = [
+lint.per-file-ignores."src/paperless/models.py" = [
+  "SIM115",
+]
+lint.per-file-ignores."src/paperless/parsers.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_migration_document_pages_count.py" = [
+lint.per-file-ignores."src/paperless/settings.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_migration_mime_type.py" = [
+lint.per-file-ignores."src/paperless/signals/handlers.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/tests/test_sanity_check.py" = [
+lint.per-file-ignores."src/paperless/tests/test_consumer.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/documents/views.py" = [
+lint.per-file-ignores."src/paperless/tests/test_file_handling.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/paperless/checks.py" = [
+lint.per-file-ignores."src/paperless/tests/test_management.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/paperless/file_handling.py" = [
+lint.per-file-ignores."src/paperless/tests/test_management_consumer.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/paperless/management/commands/document_consumer.py" = [
+lint.per-file-ignores."src/paperless/tests/test_management_exporter.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/paperless/management/commands/document_exporter.py" = [
+lint.per-file-ignores."src/paperless/tests/test_migration_archive_files.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/paperless/models.py" = [
-  "SIM115",
-]
-lint.per-file-ignores."src/paperless/parsers.py" = [
+lint.per-file-ignores."src/paperless/tests/test_migration_document_pages_count.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/paperless/settings.py" = [
+lint.per-file-ignores."src/paperless/tests/test_migration_mime_type.py" = [
   "PTH",
 ] # TODO Enable & remove
-lint.per-file-ignores."src/paperless/signals/handlers.py" = [
+lint.per-file-ignores."src/paperless/tests/test_sanity_check.py" = [
   "PTH",
 ] # TODO Enable & remove
 lint.per-file-ignores."src/paperless/views.py" = [
diff --git a/src/documents/tests/__init__.py b/src/documents/tests/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/documents/tests/test_checks.py b/src/documents/tests/test_checks.py
deleted file mode 100644 (file)
index 8f6ab79..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-import textwrap
-from unittest import mock
-
-from django.core.checks import Error
-from django.core.checks import Warning
-from django.test import TestCase
-from django.test import override_settings
-
-from documents.tests.factories import DocumentFactory
-from paperless.checks import changed_password_check
-from paperless.checks import filename_format_check
-from paperless.checks import parser_check
-from paperless.models import Document
-
-
-class TestDocumentChecks(TestCase):
-    def test_changed_password_check_empty_db(self):
-        self.assertListEqual(changed_password_check(None), [])
-
-    def test_changed_password_check_no_encryption(self):
-        DocumentFactory.create(storage_type=Document.STORAGE_TYPE_UNENCRYPTED)
-        self.assertListEqual(changed_password_check(None), [])
-
-    def test_encrypted_missing_passphrase(self):
-        DocumentFactory.create(storage_type=Document.STORAGE_TYPE_GPG)
-        msgs = changed_password_check(None)
-        self.assertEqual(len(msgs), 1)
-        msg_text = msgs[0].msg
-        self.assertEqual(
-            msg_text,
-            "The database contains encrypted documents but no password is set.",
-        )
-
-    @override_settings(
-        PASSPHRASE="test",
-    )
-    @mock.patch("paperless.db.GnuPG.decrypted")
-    @mock.patch("documents.models.Document.source_file")
-    def test_encrypted_decrypt_fails(self, mock_decrypted, mock_source_file):
-        mock_decrypted.return_value = None
-        mock_source_file.return_value = b""
-
-        DocumentFactory.create(storage_type=Document.STORAGE_TYPE_GPG)
-
-        msgs = changed_password_check(None)
-
-        self.assertEqual(len(msgs), 1)
-        msg_text = msgs[0].msg
-        self.assertEqual(
-            msg_text,
-            textwrap.dedent(
-                """
-                The current password doesn't match the password of the
-                existing documents.
-
-                If you intend to change your password, you must first export
-                all of the old documents, start fresh with the new password
-                and then re-import them."
-                """,
-            ),
-        )
-
-    def test_parser_check(self):
-        self.assertEqual(parser_check(None), [])
-
-        with mock.patch("documents.checks.document_consumer_declaration.send") as m:
-            m.return_value = []
-
-            self.assertEqual(
-                parser_check(None),
-                [
-                    Error(
-                        "No parsers found. This is a bug. The consumer won't be "
-                        "able to consume any documents without parsers.",
-                    ),
-                ],
-            )
-
-    def test_filename_format_check(self):
-        self.assertEqual(filename_format_check(None), [])
-
-        with override_settings(FILENAME_FORMAT="{created}/{title}"):
-            self.assertEqual(
-                filename_format_check(None),
-                [
-                    Warning(
-                        "Filename format {created}/{title} is using the old style, please update to use double curly brackets",
-                        hint="{{ created }}/{{ title }}",
-                    ),
-                ],
-            )
similarity index 98%
rename from src/documents/tests/test_admin.py
rename to src/paperless/tests/test_admin.py
index bcd9b3ff18688da3c1366987f1d8ec492109137a..6fec149bc96853fff994ef49f6108f57a2650e84 100644 (file)
@@ -5,11 +5,11 @@ from django.contrib.auth.models import User
 from django.test import TestCase
 from django.utils import timezone
 
-from documents.tests.utils import DirectoriesMixin
 from paperless import index
 from paperless.admin import DocumentAdmin
 from paperless.admin import PaperlessUserAdmin
 from paperless.models import Document
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestDocumentAdmin(DirectoriesMixin, TestCase):
similarity index 98%
rename from src/documents/tests/test_api_app_config.py
rename to src/paperless/tests/test_api_app_config.py
index df5f9e2ad83081eb8c6a735267b41a1acb822088..33e5c55cf65d09df47cab40987ab65de088bd69d 100644 (file)
@@ -5,9 +5,9 @@ from django.contrib.auth.models import User
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import ApplicationConfiguration
 from paperless.models import ColorConvertChoices
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestApiAppConfig(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_bulk_download.py
rename to src/paperless/tests/test_api_bulk_download.py
index 0561fa9c3db101a1dc8809169e3a4c7fe9c48d27..cb5a5f7402df3efc605c22d1f63c544b05e7b24a 100644 (file)
@@ -10,11 +10,11 @@ from django.utils import timezone
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import SampleDirMixin
 from paperless.models import Correspondent
 from paperless.models import Document
 from paperless.models import DocumentType
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import SampleDirMixin
 
 
 class TestBulkDownload(DirectoriesMixin, SampleDirMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_bulk_edit.py
rename to src/paperless/tests/test_api_bulk_edit.py
index 701e459fbc7c5dc33e6c5b77d1d76d32c14c23ff..8db30cfe1904338d0863980898ded43c68a21829 100644 (file)
@@ -9,13 +9,13 @@ from guardian.shortcuts import assign_perm
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import Correspondent
 from paperless.models import CustomField
 from paperless.models import Document
 from paperless.models import DocumentType
 from paperless.models import StoragePath
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestBulkEditAPI(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_custom_fields.py
rename to src/paperless/tests/test_api_custom_fields.py
index d452f0a4f19544609fb4828649f9fe7ed59a3442..4717e5492fa1adefd6e5dc7429bae84e62f21bc9 100644 (file)
@@ -7,10 +7,10 @@ from django.contrib.auth.models import User
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import CustomField
 from paperless.models import CustomFieldInstance
 from paperless.models import Document
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestCustomFieldsAPI(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_documents.py
rename to src/paperless/tests/test_api_documents.py
index 95ca9b2bbb01b6da50d57715f207a8f5bbe9b240..57ec8077f24624e42708841a6de7bf9239e4e63d 100644 (file)
@@ -24,8 +24,6 @@ from guardian.shortcuts import assign_perm
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import DocumentConsumeDelayMixin
 from paperless.caching import CACHE_50_MINUTES
 from paperless.caching import CLASSIFIER_HASH_KEY
 from paperless.caching import CLASSIFIER_MODIFIED_KEY
@@ -46,6 +44,8 @@ from paperless.models import Workflow
 from paperless.models import WorkflowAction
 from paperless.models import WorkflowTrigger
 from paperless.signals.handlers import run_workflows
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DocumentConsumeDelayMixin
 
 
 class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_filter_by_custom_fields.py
rename to src/paperless/tests/test_api_filter_by_custom_fields.py
index c5e0ca0ce6d475a60e7d4acfd5a53895741e40a0..f58bc65047971834f3e40d7bb839754ff65ec4a5 100644 (file)
@@ -7,10 +7,10 @@ from urllib.parse import quote
 from django.contrib.auth.models import User
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import CustomField
 from paperless.models import Document
 from paperless.serialisers import DocumentSerializer
+from paperless.tests.utils import DirectoriesMixin
 
 
 class DocumentWrapper:
similarity index 99%
rename from src/documents/tests/test_api_objects.py
rename to src/paperless/tests/test_api_objects.py
index 98ed794c8acf0b65c2804fd34d1bad4fe1341ed6..6c575bd55ccb1bc3362b2d6a91e920237a55adee 100644 (file)
@@ -8,12 +8,12 @@ from django.utils import timezone
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import Correspondent
 from paperless.models import Document
 from paperless.models import DocumentType
 from paperless.models import StoragePath
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestApiObjects(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_permissions.py
rename to src/paperless/tests/test_api_permissions.py
index 4cfd06c38655814a88fb011378197e4f00c09636..0df0eb3b5799bc96f749125d5f069618561a06f8 100644 (file)
@@ -13,13 +13,13 @@ from guardian.shortcuts import get_users_with_perms
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import Correspondent
 from paperless.models import Document
 from paperless.models import DocumentType
 from paperless.models import MatchingModel
 from paperless.models import StoragePath
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestApiAuth(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_profile.py
rename to src/paperless/tests/test_api_profile.py
index 1075a0af88b34162866e16c2630ae481f465c1f2..3686c23a7c5c64f359ad27f7fad713ea69163ec7 100644 (file)
@@ -8,7 +8,7 @@ from rest_framework import status
 from rest_framework.authtoken.models import Token
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DirectoriesMixin
 
 
 # see allauth.socialaccount.providers.openid.provider.OpenIDProvider
similarity index 99%
rename from src/documents/tests/test_api_search.py
rename to src/paperless/tests/test_api_search.py
index 391261c1e5cefc031fa93484b4667ca0f255a45c..1202189e60f0d91d4d9b0853a7b966aeced9bc17 100644 (file)
@@ -14,7 +14,6 @@ from rest_framework import status
 from rest_framework.test import APITestCase
 from whoosh.writing import AsyncWriter
 
-from documents.tests.utils import DirectoriesMixin
 from paperless import index
 from paperless.bulk_edit import set_permissions
 from paperless.models import Correspondent
@@ -27,6 +26,7 @@ from paperless.models import SavedView
 from paperless.models import StoragePath
 from paperless.models import Tag
 from paperless.models import Workflow
+from paperless.tests.utils import DirectoriesMixin
 from paperless_mail.models import MailAccount
 from paperless_mail.models import MailRule
 
similarity index 99%
rename from src/documents/tests/test_api_tasks.py
rename to src/paperless/tests/test_api_tasks.py
index 15e0a5e04b6f298d839a70d15e127c3638c80cfd..90e61abcd73fc5e1a0eb9598f43092fccbd22ba2 100644 (file)
@@ -7,8 +7,8 @@ from django.contrib.auth.models import User
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import PaperlessTask
+from paperless.tests.utils import DirectoriesMixin
 from paperless.views import TasksViewSet
 
 
similarity index 98%
rename from src/documents/tests/test_api_uisettings.py
rename to src/paperless/tests/test_api_uisettings.py
index e3b9d4999b3bef3b899dd875fc6f7f3e84a79b6c..00a439b847eca8b4daf6b948d40b75a1f5474e05 100644 (file)
@@ -6,7 +6,7 @@ from django.test import override_settings
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestApiUiSettings(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_api_workflows.py
rename to src/paperless/tests/test_api_workflows.py
index 9c76bacd7211a0f7b683aff23683e6c75924b770..5f7a54d223503ca8694d6c5a4f11be87de28eb0c 100644 (file)
@@ -5,7 +5,6 @@ from django.contrib.auth.models import User
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.data_models import DocumentSource
 from paperless.models import Correspondent
 from paperless.models import CustomField
@@ -15,6 +14,7 @@ from paperless.models import Tag
 from paperless.models import Workflow
 from paperless.models import WorkflowAction
 from paperless.models import WorkflowTrigger
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestApiWorkflows(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_barcodes.py
rename to src/paperless/tests/test_barcodes.py
index bf255d6ba525a6714cfb4ba6f6593774db4196fb..184f30f17a09b5458f1b356de7e501b3e6bf8f92 100644 (file)
@@ -9,11 +9,6 @@ from django.conf import settings
 from django.test import TestCase
 from django.test import override_settings
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import DocumentConsumeDelayMixin
-from documents.tests.utils import DummyProgressManager
-from documents.tests.utils import FileSystemAssertsMixin
-from documents.tests.utils import SampleDirMixin
 from paperless import tasks
 from paperless.barcodes import BarcodePlugin
 from paperless.data_models import ConsumableDocument
@@ -22,6 +17,11 @@ from paperless.data_models import DocumentSource
 from paperless.models import Document
 from paperless.models import Tag
 from paperless.plugins.base import StopConsumeTaskError
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DocumentConsumeDelayMixin
+from paperless.tests.utils import DummyProgressManager
+from paperless.tests.utils import FileSystemAssertsMixin
+from paperless.tests.utils import SampleDirMixin
 
 try:
     import zxingcpp  # noqa: F401
similarity index 99%
rename from src/documents/tests/test_bulk_edit.py
rename to src/paperless/tests/test_bulk_edit.py
index ae283a7869796f04b0c6007fcdacc1e85fa471ea..1432674582db0c23f9d8faf79642a09aabddc53c 100644 (file)
@@ -9,7 +9,6 @@ from guardian.shortcuts import assign_perm
 from guardian.shortcuts import get_groups_with_perms
 from guardian.shortcuts import get_users_with_perms
 
-from documents.tests.utils import DirectoriesMixin
 from paperless import bulk_edit
 from paperless.models import Correspondent
 from paperless.models import CustomField
@@ -18,6 +17,7 @@ from paperless.models import Document
 from paperless.models import DocumentType
 from paperless.models import StoragePath
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestBulkEdit(DirectoriesMixin, TestCase):
index ff6c25e43d06d6319a81f39da8929ad8c6d89ff7..dfa4a5f1db4b507ef9551879e3099f2fbb192763 100644 (file)
 import os
+import textwrap
 from pathlib import Path
 from unittest import mock
 
+from django.core.checks import Error
+from django.core.checks import Warning
 from django.test import TestCase
 from django.test import override_settings
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
+from documents.tests.factories import DocumentFactory
 from paperless.checks import audit_log_check
 from paperless.checks import binaries_check
+from paperless.checks import changed_password_check
 from paperless.checks import debug_mode_check
+from paperless.checks import filename_format_check
+from paperless.checks import parser_check
 from paperless.checks import paths_check
 from paperless.checks import settings_values_check
+from paperless.models import Document
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
+
+
+class TestDocumentChecks(TestCase):
+    def test_changed_password_check_empty_db(self):
+        self.assertListEqual(changed_password_check(None), [])
+
+    def test_changed_password_check_no_encryption(self):
+        DocumentFactory.create(storage_type=Document.STORAGE_TYPE_UNENCRYPTED)
+        self.assertListEqual(changed_password_check(None), [])
+
+    def test_encrypted_missing_passphrase(self):
+        DocumentFactory.create(storage_type=Document.STORAGE_TYPE_GPG)
+        msgs = changed_password_check(None)
+        self.assertEqual(len(msgs), 1)
+        msg_text = msgs[0].msg
+        self.assertEqual(
+            msg_text,
+            "The database contains encrypted documents but no password is set.",
+        )
+
+    @override_settings(
+        PASSPHRASE="test",
+    )
+    @mock.patch("paperless.db.GnuPG.decrypted")
+    @mock.patch("documents.models.Document.source_file")
+    def test_encrypted_decrypt_fails(self, mock_decrypted, mock_source_file):
+        mock_decrypted.return_value = None
+        mock_source_file.return_value = b""
+
+        DocumentFactory.create(storage_type=Document.STORAGE_TYPE_GPG)
+
+        msgs = changed_password_check(None)
+
+        self.assertEqual(len(msgs), 1)
+        msg_text = msgs[0].msg
+        self.assertEqual(
+            msg_text,
+            textwrap.dedent(
+                """
+                The current password doesn't match the password of the
+                existing documents.
+
+                If you intend to change your password, you must first export
+                all of the old documents, start fresh with the new password
+                and then re-import them."
+                """,
+            ),
+        )
+
+    def test_parser_check(self):
+        self.assertEqual(parser_check(None), [])
+
+        with mock.patch("documents.checks.document_consumer_declaration.send") as m:
+            m.return_value = []
+
+            self.assertEqual(
+                parser_check(None),
+                [
+                    Error(
+                        "No parsers found. This is a bug. The consumer won't be "
+                        "able to consume any documents without parsers.",
+                    ),
+                ],
+            )
+
+    def test_filename_format_check(self):
+        self.assertEqual(filename_format_check(None), [])
+
+        with override_settings(FILENAME_FORMAT="{created}/{title}"):
+            self.assertEqual(
+                filename_format_check(None),
+                [
+                    Warning(
+                        "Filename format {created}/{title} is using the old style, please update to use double curly brackets",
+                        hint="{{ created }}/{{ title }}",
+                    ),
+                ],
+            )
 
 
 class TestChecks(DirectoriesMixin, TestCase):
similarity index 99%
rename from src/documents/tests/test_classifier.py
rename to src/paperless/tests/test_classifier.py
index 2e7d3232b13b3e1fcfcc5d4c5200464cd361305d..434ad5ab973a354a6a7bc6433131c4f8d8f498a5 100644 (file)
@@ -8,7 +8,6 @@ from django.conf import settings
 from django.test import TestCase
 from django.test import override_settings
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.classifier import ClassifierModelCorruptError
 from paperless.classifier import DocumentClassifier
 from paperless.classifier import IncompatibleClassifierVersionError
@@ -19,6 +18,7 @@ from paperless.models import DocumentType
 from paperless.models import MatchingModel
 from paperless.models import StoragePath
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
 
 
 def dummy_preprocess(content: str):
similarity index 99%
rename from src/documents/tests/test_consumer.py
rename to src/paperless/tests/test_consumer.py
index 1ac295c38b28d690da78fbd0c31d5f0be21bc35d..98bb119190a826c6ae3b296afda817a0a9df3a16 100644 (file)
@@ -17,9 +17,6 @@ from django.test import override_settings
 from django.utils import timezone
 from guardian.core import ObjectPermissionChecker
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
-from documents.tests.utils import GetConsumerMixin
 from paperless.consumer import ConsumerError
 from paperless.data_models import DocumentMetadataOverrides
 from paperless.data_models import DocumentSource
@@ -33,6 +30,9 @@ from paperless.parsers import DocumentParser
 from paperless.parsers import ParseError
 from paperless.plugins.helpers import ProgressStatusOptions
 from paperless.tasks import sanity_check
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
+from paperless.tests.utils import GetConsumerMixin
 from paperless_mail.models import MailRule
 from paperless_mail.parsers import MailDocumentParser
 
similarity index 98%
rename from src/documents/tests/test_double_sided.py
rename to src/paperless/tests/test_double_sided.py
index cb769c96d132464589ecfefad6bf34ac4aa42a01..0b0d759b37b39822d91978d8cbf349e925ab3f68 100644 (file)
@@ -9,15 +9,15 @@ from django.test import override_settings
 from pdfminer.high_level import extract_text
 from pikepdf import Pdf
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import DummyProgressManager
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless import tasks
 from paperless.consumer import ConsumerError
 from paperless.data_models import ConsumableDocument
 from paperless.data_models import DocumentSource
 from paperless.double_sided import STAGING_FILE_NAME
 from paperless.double_sided import TIMEOUT_MINUTES
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DummyProgressManager
+from paperless.tests.utils import FileSystemAssertsMixin
 
 
 @override_settings(
similarity index 99%
rename from src/documents/tests/test_file_handling.py
rename to src/paperless/tests/test_file_handling.py
index 08d501f31e2e63f1e995bb88d47d9a7f1ec9fc66..71777a1d5e67e8ad139abf83091df14713cf53c8 100644 (file)
@@ -13,8 +13,6 @@ from django.test import TestCase
 from django.test import override_settings
 from django.utils import timezone
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless.file_handling import create_source_path_directory
 from paperless.file_handling import delete_empty_directories
 from paperless.file_handling import generate_filename
@@ -25,6 +23,8 @@ from paperless.models import Document
 from paperless.models import DocumentType
 from paperless.models import StoragePath
 from paperless.tasks import empty_trash
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
 
 
 class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
similarity index 98%
rename from src/documents/tests/test_index.py
rename to src/paperless/tests/test_index.py
index ecd16070c112c1c221f50e3646c4b7a50adb1e27..99d92353fbb17bb2ed81a0b9e0a1317d5abb5f03 100644 (file)
@@ -2,9 +2,9 @@ from unittest import mock
 
 from django.test import TestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless import index
 from paperless.models import Document
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestAutoComplete(DirectoriesMixin, TestCase):
similarity index 98%
rename from src/documents/tests/test_management.py
rename to src/paperless/tests/test_management.py
index f01db93ceb635927fd2e66a6b2ac6145b0f1150a..05d1535a6b498d2b7d1c4dc6438026994f8a106f 100644 (file)
@@ -13,11 +13,11 @@ from django.core.management import call_command
 from django.test import TestCase
 from django.test import override_settings
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless.file_handling import generate_filename
 from paperless.models import Document
 from paperless.tasks import update_document_content_maybe_archive_file
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
 
 sample_file = os.path.join(os.path.dirname(__file__), "samples", "simple.pdf")
 
similarity index 99%
rename from src/documents/tests/test_management_consumer.py
rename to src/paperless/tests/test_management_consumer.py
index bb03922c3720ef324b338d210832ceb52cadc00e..19fe74971a5e5abb11ccc50a94c9218314d72b2f 100644 (file)
@@ -13,11 +13,11 @@ from django.test import TransactionTestCase
 from django.test import override_settings
 
 from documents.management.commands import document_consumer
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import DocumentConsumeDelayMixin
 from paperless.consumer import ConsumerError
 from paperless.data_models import ConsumableDocument
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DocumentConsumeDelayMixin
 
 
 class ConsumerThread(Thread):
similarity index 99%
rename from src/documents/tests/test_management_exporter.py
rename to src/paperless/tests/test_management_exporter.py
index b5b10364680e07b77ab673f1ae25ab64ed897a25..6a1560754d7bd81bfbd4f1b69a03521f169fa0f3 100644 (file)
@@ -26,10 +26,6 @@ from guardian.shortcuts import assign_perm
 
 from documents.management.commands import document_exporter
 from documents.settings import EXPORTER_FILE_NAME
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
-from documents.tests.utils import SampleDirMixin
-from documents.tests.utils import paperless_environment
 from paperless.models import Correspondent
 from paperless.models import CustomField
 from paperless.models import CustomFieldInstance
@@ -43,6 +39,10 @@ from paperless.models import Workflow
 from paperless.models import WorkflowAction
 from paperless.models import WorkflowTrigger
 from paperless.sanity_checker import check_sanity
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
+from paperless.tests.utils import SampleDirMixin
+from paperless.tests.utils import paperless_environment
 from paperless_mail.models import MailAccount
 
 
similarity index 98%
rename from src/documents/tests/test_management_importer.py
rename to src/paperless/tests/test_management_importer.py
index 29daa5bf6d01269b66f958e682494e97b5afa4d6..4500aa3bd6a81f8b03b7c04e27efef437730be85 100644 (file)
@@ -11,10 +11,10 @@ from django.test import TestCase
 from documents.management.commands.document_importer import Command
 from documents.settings import EXPORTER_ARCHIVE_NAME
 from documents.settings import EXPORTER_FILE_NAME
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
-from documents.tests.utils import SampleDirMixin
 from paperless.models import Document
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
+from paperless.tests.utils import SampleDirMixin
 
 
 class TestCommandImport(
similarity index 99%
rename from src/documents/tests/test_management_retagger.py
rename to src/paperless/tests/test_management_retagger.py
index 0b650aec5f01d270b0ead77d05e5c0ae72047545..01ccb5b52925e68357e5653160df919735324e4f 100644 (file)
@@ -2,12 +2,12 @@ from django.core.management import call_command
 from django.core.management.base import CommandError
 from django.test import TestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import Correspondent
 from paperless.models import Document
 from paperless.models import DocumentType
 from paperless.models import StoragePath
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestRetagger(DirectoriesMixin, TestCase):
similarity index 99%
rename from src/documents/tests/test_management_superuser.py
rename to src/paperless/tests/test_management_superuser.py
index 01f03c8e115f457c1f7299f94bc9ed2b29b6913c..4a0842e7b708cf6df21c0dbc7ce19ef16016e953 100644 (file)
@@ -6,7 +6,7 @@ from django.contrib.auth.models import User
 from django.core.management import call_command
 from django.test import TestCase
 
-from documents.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestManageSuperUser(DirectoriesMixin, TestCase):
similarity index 96%
rename from src/documents/tests/test_management_thumbnails.py
rename to src/paperless/tests/test_management_thumbnails.py
index a3923943a2b3974eeb06cbd6913bda1ef98d11bd..6fb582c14180eba09976d9cc7420cf6b463ac588 100644 (file)
@@ -6,10 +6,10 @@ from django.core.management import call_command
 from django.test import TestCase
 
 from documents.management.commands.document_thumbnails import _process_document
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless.models import Document
 from paperless.parsers import get_default_thumbnail
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
 
 
 class TestMakeThumbnails(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
similarity index 99%
rename from src/documents/tests/test_migration_archive_files.py
rename to src/paperless/tests/test_migration_archive_files.py
index 37f0c22095929894b45eb5089fc862edd24dfa7c..b4a8a87f885ca7b0648f20ae9e40c93be3054b44 100644 (file)
@@ -8,10 +8,10 @@ from unittest import mock
 from django.conf import settings
 from django.test import override_settings
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
-from documents.tests.utils import TestMigrations
 from paperless.parsers import ParseError
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
+from paperless.tests.utils import TestMigrations
 
 STORAGE_TYPE_GPG = "gpg"
 
similarity index 97%
rename from src/documents/tests/test_migration_consumption_templates.py
rename to src/paperless/tests/test_migration_consumption_templates.py
index 9170071166f2815e8f0eabbc5a301e0120ebaec3..415e068bb5dcdc418b37f791529693f0ea274048 100644 (file)
@@ -1,6 +1,6 @@
 from django.contrib.auth import get_user_model
 
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import TestMigrations
 
 
 class TestMigrateConsumptionTemplate(TestMigrations):
similarity index 98%
rename from src/documents/tests/test_migration_custom_field_selects.py
rename to src/paperless/tests/test_migration_custom_field_selects.py
index 59004bf21db70d1bdb83d089eaa3db5755aae6a6..a12d02d10ea3b94f3e1059282ef0313355c691d3 100644 (file)
@@ -1,6 +1,6 @@
 from unittest.mock import ANY
 
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import TestMigrations
 
 
 class TestMigrateCustomFieldSelects(TestMigrations):
similarity index 97%
rename from src/documents/tests/test_migration_customfields.py
rename to src/paperless/tests/test_migration_customfields.py
index 79308bceb342180794d3f58d568ff5e827825b21..026a7a88a2142cec7bcab82b790cf14db283c747 100644 (file)
@@ -1,6 +1,6 @@
 from django.contrib.auth import get_user_model
 
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import TestMigrations
 
 
 class TestMigrateCustomFields(TestMigrations):
similarity index 94%
rename from src/documents/tests/test_migration_document_pages_count.py
rename to src/paperless/tests/test_migration_document_pages_count.py
index 902896b8c5cec4e485d195ceac5df52a849fe50f..84dfc3e442a5c29f24e679e4220ebaec897bf40c 100644 (file)
@@ -4,8 +4,8 @@ from pathlib import Path
 
 from django.conf import settings
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import TestMigrations
 
 
 def source_path_before(self):
similarity index 99%
rename from src/documents/tests/test_migration_encrypted_webp_conversion.py
rename to src/paperless/tests/test_migration_encrypted_webp_conversion.py
index 0660df36813896cf5c4bb61c3794a050e731a04d..a7783f7e375abac10d41909b4f6b7cee1d62745a 100644 (file)
@@ -8,7 +8,7 @@ from unittest import mock
 
 from django.test import override_settings
 
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import TestMigrations
 
 # https://github.com/python/cpython/issues/100950
 migration_1037_obj = importlib.import_module(
similarity index 96%
rename from src/documents/tests/test_migration_mime_type.py
rename to src/paperless/tests/test_migration_mime_type.py
index b0ecf5f35d5d65e9349857778d0dbc548dfb6452..aecadb7b443f16af3e7de38966ef9064599ae140 100644 (file)
@@ -4,9 +4,9 @@ import shutil
 from django.conf import settings
 from django.test import override_settings
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import TestMigrations
 from paperless.parsers import get_default_file_extension
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import TestMigrations
 
 STORAGE_TYPE_UNENCRYPTED = "unencrypted"
 STORAGE_TYPE_GPG = "gpg"
similarity index 83%
rename from src/documents/tests/test_migration_remove_null_characters.py
rename to src/paperless/tests/test_migration_remove_null_characters.py
index c47bc80ca7797b046003ccda70a8b951c4b26593..87d672e75fae3f939a7e3ef2dd374382cfd48978 100644 (file)
@@ -1,5 +1,5 @@
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import TestMigrations
 
 
 class TestMigrateNullCharacters(DirectoriesMixin, TestMigrations):
similarity index 95%
rename from src/documents/tests/test_migration_storage_path_template.py
rename to src/paperless/tests/test_migration_storage_path_template.py
index 9f50eaea56d0cfe680ad5809c72ec1169e7ba194..7efaccf0dbb885791e02f01648b3d8160d052aaa 100644 (file)
@@ -1,5 +1,5 @@
-from documents.tests.utils import TestMigrations
 from paperless.models import StoragePath
+from paperless.tests.utils import TestMigrations
 
 
 class TestMigrateStoragePathToTemplate(TestMigrations):
similarity index 93%
rename from src/documents/tests/test_migration_tag_colors.py
rename to src/paperless/tests/test_migration_tag_colors.py
index 0643fe88319fab77b6d353ce0769e904f4012ced..e73098f943c6c7ca4a7fa81d5f33a1d0676d8cc3 100644 (file)
@@ -1,5 +1,5 @@
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import TestMigrations
 
 
 class TestMigrateTagColor(DirectoriesMixin, TestMigrations):
similarity index 99%
rename from src/documents/tests/test_migration_webp_conversion.py
rename to src/paperless/tests/test_migration_webp_conversion.py
index cd148ed6fd32438c1ddb4e194152cb265db9487d..7ce69ad6cc08d7d3de1ff7df216d109f8441288f 100644 (file)
@@ -8,7 +8,7 @@ from unittest import mock
 
 from django.test import override_settings
 
-from documents.tests.utils import TestMigrations
+from paperless.tests.utils import TestMigrations
 
 # https://github.com/python/cpython/issues/100950
 migration_1021_obj = importlib.import_module(
similarity index 99%
rename from src/documents/tests/test_migration_workflows.py
rename to src/paperless/tests/test_migration_workflows.py
index 1c16da9ddb5ab4ab87f4084bc1bdc08215d834a7..d86e75d542e4ad2f64f2ce74a70b09684e4637bf 100644 (file)
@@ -1,5 +1,5 @@
-from documents.tests.utils import TestMigrations
 from paperless.data_models import DocumentSource
+from paperless.tests.utils import TestMigrations
 
 
 class TestMigrateWorkflow(TestMigrations):
index ebe1b3ff5d3e125c8dbe913b2eed1db0895c0754..657767354de7d384ff02199a123eb4f4ede8c4ca 100644 (file)
@@ -6,8 +6,8 @@ from django.test import override_settings
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.settings import _parse_remote_user_settings
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestRemoteUser(DirectoriesMixin, APITestCase):
similarity index 99%
rename from src/documents/tests/test_sanity_check.py
rename to src/paperless/tests/test_sanity_check.py
index d068a749f4e2075a19590d111e3c44acf197ba70..81a331344977562bc61ab4f48cb81c3478b2ae15 100644 (file)
@@ -7,9 +7,9 @@ import filelock
 from django.conf import settings
 from django.test import TestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import Document
 from paperless.sanity_checker import check_sanity
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestSanityCheck(DirectoriesMixin, TestCase):
similarity index 99%
rename from src/documents/tests/test_task_signals.py
rename to src/paperless/tests/test_task_signals.py
index ed25593706dd54ad546c7411ba7bb281603b78ee..1ec578d82b9e14ff9e5fb6eb5d624bc028cabce5 100644 (file)
@@ -5,7 +5,6 @@ import celery
 from django.test import TestCase
 
 from documents.tests.test_consumer import fake_magic_from_file
-from documents.tests.utils import DirectoriesMixin
 from paperless.data_models import ConsumableDocument
 from paperless.data_models import DocumentMetadataOverrides
 from paperless.data_models import DocumentSource
@@ -14,6 +13,7 @@ from paperless.signals.handlers import before_task_publish_handler
 from paperless.signals.handlers import task_failure_handler
 from paperless.signals.handlers import task_postrun_handler
 from paperless.signals.handlers import task_prerun_handler
+from paperless.tests.utils import DirectoriesMixin
 
 
 @mock.patch("documents.consumer.magic.from_file", fake_magic_from_file)
similarity index 98%
rename from src/documents/tests/test_tasks.py
rename to src/paperless/tests/test_tasks.py
index c3e582e85c38c29cb31f3280c0d4c722b887cfda..4130d71eceaa7ec7525cc22a0aee6933c051ac4c 100644 (file)
@@ -8,8 +8,6 @@ from django.test import TestCase
 from django.utils import timezone
 
 from documents.tests.test_classifier import dummy_preprocess
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless import tasks
 from paperless.models import Correspondent
 from paperless.models import Document
@@ -17,6 +15,8 @@ from paperless.models import DocumentType
 from paperless.models import Tag
 from paperless.sanity_checker import SanityCheckFailedException
 from paperless.sanity_checker import SanityCheckMessages
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
 
 
 class TestIndexReindex(DirectoriesMixin, TestCase):
similarity index 99%
rename from src/documents/tests/test_views.py
rename to src/paperless/tests/test_views.py
index 2f804fde44a0f13eb0b5cac0ee9516241dd79d12..b72c56e10478b7e19ff9a7a96805e5dd50f4459c 100644 (file)
@@ -10,10 +10,10 @@ from django.test import override_settings
 from django.utils import timezone
 from rest_framework import status
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import ApplicationConfiguration
 from paperless.models import Document
 from paperless.models import ShareLink
+from paperless.tests.utils import DirectoriesMixin
 
 
 class TestViews(DirectoriesMixin, TestCase):
similarity index 99%
rename from src/documents/tests/test_workflows.py
rename to src/paperless/tests/test_workflows.py
index bebd1e1898b39a8f93c0aaf9ee7af088a2f46a2e..2ad9064fb809df6d528b7e1cb4c53512cf83d915 100644 (file)
@@ -21,10 +21,6 @@ if TYPE_CHECKING:
     from django.db.models import QuerySet
 
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import DummyProgressManager
-from documents.tests.utils import FileSystemAssertsMixin
-from documents.tests.utils import SampleDirMixin
 from paperless import tasks
 from paperless.data_models import ConsumableDocument
 from paperless.data_models import DocumentSource
@@ -44,6 +40,10 @@ from paperless.models import WorkflowActionWebhook
 from paperless.models import WorkflowRun
 from paperless.models import WorkflowTrigger
 from paperless.signals import document_consumption_finished
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import DummyProgressManager
+from paperless.tests.utils import FileSystemAssertsMixin
+from paperless.tests.utils import SampleDirMixin
 from paperless_mail.models import MailAccount
 from paperless_mail.models import MailRule
 
index 9171395ec6a20b12a555bd300e4f3b1c214b3058..a282ced8763ca6ba82cf892bdee490f15a62dafb 100644 (file)
@@ -7,10 +7,10 @@ from guardian.shortcuts import assign_perm
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
 from paperless.models import Correspondent
 from paperless.models import DocumentType
 from paperless.models import Tag
+from paperless.tests.utils import DirectoriesMixin
 from paperless_mail.models import MailAccount
 from paperless_mail.models import MailRule
 from paperless_mail.tests.test_mail import BogusMailBox
index 97ff5373d06f8782c5eb637c38dc29cf2891b21c..9f1d1ae5077ce44b6d58fada411cb40fbe4ed6e4 100644 (file)
@@ -24,9 +24,9 @@ from imap_tools import errors
 from rest_framework import status
 from rest_framework.test import APITestCase
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless.models import Correspondent
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
 from paperless_mail import tasks
 from paperless_mail.mail import MailAccountHandler
 from paperless_mail.mail import MailError
index e1febb1e5d2fd1e3af091de9faeb79a6ae585821..d0bc3ed1f1e2db99fe4f7d77e59ddeba4aab49b4 100644 (file)
@@ -10,7 +10,7 @@ from imagehash import average_hash
 from PIL import Image
 from pytest_mock import MockerFixture
 
-from documents.tests.utils import util_call_with_backoff
+from paperless.tests.utils import util_call_with_backoff
 from paperless_mail.parsers import MailDocumentParser
 
 
index 598976edaeb349c1dc50071db17559a817742a89..e4ffb39aecea899dc90a00ee2258c6d60dd94a1b 100644 (file)
@@ -9,10 +9,10 @@ from django.test import TestCase
 from django.test import override_settings
 from ocrmypdf import SubprocessOutputError
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless.parsers import ParseError
 from paperless.parsers import run_convert
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
 from paperless_tesseract.parsers import RasterisedDocumentParser
 from paperless_tesseract.parsers import post_process_text
 
index 7621092dc171893f897af3247841ddeb4d3c9da5..e9aa2d05fc7f93e87bbee7ba6fb92690c2cf7135 100644 (file)
@@ -3,13 +3,13 @@ import json
 from django.test import TestCase
 from django.test import override_settings
 
-from documents.tests.utils import DirectoriesMixin
-from documents.tests.utils import FileSystemAssertsMixin
 from paperless.models import ApplicationConfiguration
 from paperless.models import CleanChoices
 from paperless.models import ColorConvertChoices
 from paperless.models import ModeChoices
 from paperless.models import OutputTypeChoices
+from paperless.tests.utils import DirectoriesMixin
+from paperless.tests.utils import FileSystemAssertsMixin
 from paperless_tesseract.parsers import RasterisedDocumentParser
 
 
index 6bb4ff0210124a436a5ed06ababf519587b03580..9fbe30dbaf2cdc4fe5b9e81cd546804c9cdff8cd 100644 (file)
@@ -3,7 +3,7 @@ from pathlib import Path
 
 import pytest
 
-from documents.tests.utils import util_call_with_backoff
+from paperless.tests.utils import util_call_with_backoff
 from paperless_tika.parsers import TikaDocumentParser