-# this is here so that django finds the checks.
-from documents.checks import changed_password_check
-from documents.checks import parser_check
-
-__all__ = ["changed_password_check", "parser_check"]
+__all__ = []
+++ /dev/null
-import textwrap
-
-from django.conf import settings
-from django.core.checks import Error
-from django.core.checks import Warning
-from django.core.checks import register
-from django.core.exceptions import FieldError
-from django.db.utils import OperationalError
-from django.db.utils import ProgrammingError
-
-from documents.signals import document_consumer_declaration
-from documents.templating.utils import convert_format_str_to_template_format
-
-
-@register()
-def changed_password_check(app_configs, **kwargs):
- from paperless.db import GnuPG
- from paperless.models import Document
-
- try:
- encrypted_doc = (
- Document.objects.filter(
- storage_type=Document.STORAGE_TYPE_GPG,
- )
- .only("pk", "storage_type")
- .first()
- )
- except (OperationalError, ProgrammingError, FieldError):
- return [] # No documents table yet
-
- if encrypted_doc:
- if not settings.PASSPHRASE:
- return [
- Error(
- "The database contains encrypted documents but no password is set.",
- ),
- ]
-
- if not GnuPG.decrypted(encrypted_doc.source_file):
- return [
- Error(
- 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."
- """,
- ),
- ),
- ]
-
- return []
-
-
-@register()
-def parser_check(app_configs, **kwargs):
- parsers = []
- for response in document_consumer_declaration.send(None):
- parsers.append(response[1])
-
- if len(parsers) == 0:
- return [
- Error(
- "No parsers found. This is a bug. The consumer won't be "
- "able to consume any documents without parsers.",
- ),
- ]
- else:
- return []
-
-
-@register()
-def filename_format_check(app_configs, **kwargs):
- if settings.FILENAME_FORMAT:
- converted_format = convert_format_str_to_template_format(
- settings.FILENAME_FORMAT,
- )
- if converted_format != settings.FILENAME_FORMAT:
- return [
- Warning(
- f"Filename format {settings.FILENAME_FORMAT} is using the old style, please update to use double curly brackets",
- hint=converted_format,
- ),
- ]
- return []
from django.test import TestCase
from django.test import override_settings
-from documents.checks import changed_password_check
-from documents.checks import filename_format_check
-from documents.checks import parser_check
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
from paperless.celery import app as celery_app
from paperless.checks import audit_log_check
from paperless.checks import binaries_check
+from paperless.checks import changed_password_check
+from paperless.checks import parser_check
from paperless.checks import paths_check
from paperless.checks import settings_values_check
"audit_log_check",
"binaries_check",
"celery_app",
+ "changed_password_check",
+ "parser_check",
"paths_check",
"settings_values_check",
]
import pwd
import shutil
import stat
+import textwrap
from django.conf import settings
from django.core.checks import Error
from django.core.checks import Warning
from django.core.checks import register
+from django.core.exceptions import FieldError
from django.db import connections
+from django.db.utils import OperationalError
+from django.db.utils import ProgrammingError
+
+from documents.signals import document_consumer_declaration
+from documents.templating.utils import convert_format_str_to_template_format
exists_message = "{} is set but doesn't exist."
exists_hint = "Create a directory at {}"
)
return result
+
+
+@register()
+def changed_password_check(app_configs, **kwargs):
+ from paperless.db import GnuPG
+ from paperless.models import Document
+
+ try:
+ encrypted_doc = (
+ Document.objects.filter(
+ storage_type=Document.STORAGE_TYPE_GPG,
+ )
+ .only("pk", "storage_type")
+ .first()
+ )
+ except (OperationalError, ProgrammingError, FieldError):
+ return [] # No documents table yet
+
+ if encrypted_doc:
+ if not settings.PASSPHRASE:
+ return [
+ Error(
+ "The database contains encrypted documents but no password is set.",
+ ),
+ ]
+
+ if not GnuPG.decrypted(encrypted_doc.source_file):
+ return [
+ Error(
+ 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."
+ """,
+ ),
+ ),
+ ]
+
+ return []
+
+
+@register()
+def parser_check(app_configs, **kwargs):
+ parsers = []
+ for response in document_consumer_declaration.send(None):
+ parsers.append(response[1])
+
+ if len(parsers) == 0:
+ return [
+ Error(
+ "No parsers found. This is a bug. The consumer won't be "
+ "able to consume any documents without parsers.",
+ ),
+ ]
+ else:
+ return []
+
+
+@register()
+def filename_format_check(app_configs, **kwargs):
+ if settings.FILENAME_FORMAT:
+ converted_format = convert_format_str_to_template_format(
+ settings.FILENAME_FORMAT,
+ )
+ if converted_format != settings.FILENAME_FORMAT:
+ return [
+ Warning(
+ f"Filename format {settings.FILENAME_FORMAT} is using the old style, please update to use double curly brackets",
+ hint=converted_format,
+ ),
+ ]
+ return []