]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Ensure all creations of directories create the parents too (#5711)
authorTrenton H <797416+stumpylog@users.noreply.github.com>
Sat, 10 Feb 2024 19:02:40 +0000 (11:02 -0800)
committerGitHub <noreply@github.com>
Sat, 10 Feb 2024 19:02:40 +0000 (11:02 -0800)
src/documents/consumer.py
src/documents/index.py
src/documents/management/commands/document_archiver.py
src/documents/management/commands/document_exporter.py
src/documents/management/commands/document_importer.py
src/documents/parsers.py
src/documents/tests/test_date_parsing.py
src/documents/tests/test_file_handling.py
src/documents/views.py
src/paperless/settings.py
src/paperless_mail/mail.py

index 01b25edeaf9af0c7a6c92ed2385484f37a4d4f01..92461484cdc0e6b18c8ff1818b76b5f5a3539164 100644 (file)
@@ -233,10 +233,10 @@ class Consumer(LoggingMixin):
         """
         Ensure all required directories exist before attempting to use them
         """
-        os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
-        os.makedirs(settings.THUMBNAIL_DIR, exist_ok=True)
-        os.makedirs(settings.ORIGINALS_DIR, exist_ok=True)
-        os.makedirs(settings.ARCHIVE_DIR, exist_ok=True)
+        settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
+        settings.THUMBNAIL_DIR.mkdir(parents=True, exist_ok=True)
+        settings.ORIGINALS_DIR.mkdir(parents=True, exist_ok=True)
+        settings.ARCHIVE_DIR.mkdir(parents=True, exist_ok=True)
 
     def pre_check_asn_value(self):
         """
index 90bc15e7bf238e91f557edcc956a43ed0a5c91a5..de651c13d885e7f04b345f2092a0c43f259db69e 100644 (file)
@@ -88,7 +88,7 @@ def open_index(recreate=False) -> FileIndex:
         logger.exception("Error while opening the index, recreating.")
 
     if not os.path.isdir(settings.INDEX_DIR):
-        os.makedirs(settings.INDEX_DIR, exist_ok=True)
+        settings.INDEX_DIR.mkdir(parents=True, exist_ok=True)
     return create_in(settings.INDEX_DIR, get_schema())
 
 
index 96b3b50ab75b8d5fdbe3096b909e1f30f08c4d80..12677dd7973039d1bd9f9a63b559588218b01949 100644 (file)
@@ -1,6 +1,5 @@
 import logging
 import multiprocessing
-import os
 
 import tqdm
 from django import db
@@ -52,7 +51,7 @@ class Command(MultiProcessMixin, ProgressBarMixin, BaseCommand):
         self.handle_processes_mixin(**options)
         self.handle_progress_bar_mixin(**options)
 
-        os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
+        settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
 
         overwrite = options["overwrite"]
 
index 9bdbd1c519b30c6f23cc98db5a716866aefd3273..faa42ba31d06e94432b278e060edc746179a7044 100644 (file)
@@ -182,7 +182,7 @@ class Command(BaseCommand):
         if self.zip_export:
             self.original_target = self.target
 
-            os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
+            settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
             temp_dir = tempfile.TemporaryDirectory(
                 dir=settings.SCRATCH_DIR,
                 prefix="paperless-export",
index c166ec0cbff85ac85ab686800047241b6336cf82..88ac2b91a4095b27929447dca912973d4f6d7893 100644 (file)
@@ -243,9 +243,9 @@ class Command(BaseCommand):
                     ) from e
 
     def _import_files_from_manifest(self, progress_bar_disable):
-        os.makedirs(settings.ORIGINALS_DIR, exist_ok=True)
-        os.makedirs(settings.THUMBNAIL_DIR, exist_ok=True)
-        os.makedirs(settings.ARCHIVE_DIR, exist_ok=True)
+        settings.ORIGINALS_DIR.mkdir(parents=True, exist_ok=True)
+        settings.THUMBNAIL_DIR.mkdir(parents=True, exist_ok=True)
+        settings.ARCHIVE_DIR.mkdir(parents=True, exist_ok=True)
 
         self.stdout.write("Copy files into paperless...")
 
index b791d83220f833b057ca9b07fc5767aaea75d073..a2b4677e692ab43f8c8f4f141e2c1e34a8a7aec9 100644 (file)
@@ -322,7 +322,7 @@ class DocumentParser(LoggingMixin):
         super().__init__()
         self.logging_group = logging_group
         self.settings = self.get_settings()
-        os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
+        settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
         self.tempdir = Path(
             tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR),
         )
index d4ea71be55f30d0203654bd6e14520c93e51157d..4c75e5f6b946eb448cfbf9ff55bbdd50f730fb4d 100644 (file)
@@ -1,7 +1,4 @@
 import datetime
-import os
-import shutil
-from uuid import uuid4
 
 from dateutil import tz
 from django.conf import settings
@@ -13,17 +10,6 @@ from documents.parsers import parse_date_generator
 
 
 class TestDate(TestCase):
-    SAMPLE_FILES = os.path.join(
-        os.path.dirname(__file__),
-        "../../paperless_tesseract/tests/samples",
-    )
-    SCRATCH = f"/tmp/paperless-tests-{str(uuid4())[:8]}"
-
-    def setUp(self):
-        os.makedirs(self.SCRATCH, exist_ok=True)
-
-    def tearDown(self):
-        shutil.rmtree(self.SCRATCH)
 
     def test_date_format_1(self):
         text = "lorem ipsum 130218 lorem ipsum"
@@ -93,7 +79,6 @@ class TestDate(TestCase):
             datetime.datetime(2020, 3, 1, 0, 0, tzinfo=tz.gettz(settings.TIME_ZONE)),
         )
 
-    @override_settings(SCRATCH_DIR=SCRATCH)
     def test_date_format_9(self):
         text = "lorem ipsum\n27. Nullmonth 2020\nMärz 2020\nlorem ipsum"
         self.assertEqual(
index 225008b78c5af7e5da12d448fcee1a241fc58ead..a924e377becd1b62df06c9dca4fa05f0c888c3df 100644 (file)
@@ -470,12 +470,12 @@ class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
 
     def test_try_delete_empty_directories(self):
         # Create our working directory
-        tmp = os.path.join(settings.ORIGINALS_DIR, "test_delete_empty")
-        os.makedirs(tmp)
+        tmp: Path = settings.ORIGINALS_DIR / "test_delete_empty"
+        tmp.mkdir(exist_ok=True, parents=True)
 
-        os.makedirs(os.path.join(tmp, "notempty"))
-        Path(os.path.join(tmp, "notempty", "file")).touch()
-        os.makedirs(os.path.join(tmp, "notempty", "empty"))
+        (tmp / "notempty").mkdir(exist_ok=True, parents=True)
+        (tmp / "notempty" / "file").touch()
+        (tmp / "notempty" / "empty").mkdir(exist_ok=True, parents=True)
 
         delete_empty_directories(
             os.path.join(tmp, "notempty", "empty"),
@@ -647,7 +647,7 @@ class TestFileHandlingWithArchive(DirectoriesMixin, FileSystemAssertsMixin, Test
         existing_archive_file = os.path.join(settings.ARCHIVE_DIR, "none", "my_doc.pdf")
         Path(original).touch()
         Path(archive).touch()
-        os.makedirs(os.path.join(settings.ARCHIVE_DIR, "none"))
+        (settings.ARCHIVE_DIR / "none").mkdir(parents=True, exist_ok=True)
         Path(existing_archive_file).touch()
         doc = Document.objects.create(
             mime_type="application/pdf",
index 3be7f4ec6ed979037576c8d3c02d069fbd461a5f..c73a8050bca1cf181f96d92da8c537336896b380 100644 (file)
@@ -904,7 +904,7 @@ class PostDocumentView(GenericAPIView):
 
         t = int(mktime(datetime.now().timetuple()))
 
-        os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
+        settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
 
         temp_file_path = Path(tempfile.mkdtemp(dir=settings.SCRATCH_DIR)) / Path(
             pathvalidate.sanitize_filename(doc_name),
@@ -1136,7 +1136,7 @@ class BulkDownloadView(GenericAPIView):
         content = serializer.validated_data.get("content")
         follow_filename_format = serializer.validated_data.get("follow_formatting")
 
-        os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
+        settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
         temp = tempfile.NamedTemporaryFile(
             dir=settings.SCRATCH_DIR,
             suffix="-compressed-archive",
index a9792db9f8a7881f94b898193a86ebbc86d61c38..163492b1e75de6592f3b7232b9a1fb7cb9ac3f7d 100644 (file)
@@ -689,7 +689,7 @@ USE_TZ = True
 
 setup_logging_queues()
 
-os.makedirs(LOGGING_DIR, exist_ok=True)
+LOGGING_DIR.mkdir(parents=True, exist_ok=True)
 
 LOGROTATE_MAX_SIZE = os.getenv("PAPERLESS_LOGROTATE_MAX_SIZE", 1024 * 1024)
 LOGROTATE_MAX_BACKUPS = os.getenv("PAPERLESS_LOGROTATE_MAX_BACKUPS", 20)
index 6514014ca9402d827d244bd0c909c73e030fb652..a4ff6478c511f2c59ea294687f2ce7d05f7ecc69 100644 (file)
@@ -710,7 +710,7 @@ class MailAccountHandler(LoggingMixin):
                     f"{message.subject} from {message.from_}",
                 )
 
-                os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
+                settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
 
                 temp_dir = Path(
                     tempfile.mkdtemp(
@@ -793,7 +793,7 @@ class MailAccountHandler(LoggingMixin):
         tag_ids,
         doc_type,
     ):
-        os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
+        settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
         _, temp_filename = tempfile.mkstemp(
             prefix="paperless-mail-",
             dir=settings.SCRATCH_DIR,