]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
code review changes 766/head
authorFlorian Brandes <florian.brandes@posteo.de>
Tue, 19 Apr 2022 22:55:45 +0000 (00:55 +0200)
committerFlorian Brandes <florian.brandes@posteo.de>
Tue, 19 Apr 2022 22:55:45 +0000 (00:55 +0200)
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
src/documents/tasks.py
src/documents/tests/test_tasks.py

index c25b24342dc1dd6c92b670f840b79e695a81782d..9fe58b32556604ebdecb554389a0791a625049ab 100644 (file)
@@ -108,23 +108,22 @@ def convert_from_tiff_to_pdf(filepath: str) -> str:
         newpath = os.path.join(tempdir, file_name + ".pdf")
     else:
         logger.warning(f"Cannot convert from {str(file_extension)} to pdf.")
-        return ""
-    image = Image.open(filepath)
-    images = []
-    for i, page in enumerate(ImageSequence.Iterator(image)):
-        page = page.convert("RGB")
-        images.append(page)
-    try:
-        if len(images) == 1:
-            images[0].save(newpath)
-        else:
-            images[0].save(newpath, save_all=True, append_images=images[1:])
-    except OSError as e:
-        logger.warning(
-            f"Could not save the file as pdf. Error: {str(e)}",
-        )
-        return ""
-    image.close()
+        return None
+    with Image.open(filepath) as image:
+        images = []
+        for i, page in enumerate(ImageSequence.Iterator(image)):
+            page = page.convert("RGB")
+            images.append(page)
+        try:
+            if len(images) == 1:
+                images[0].save(newpath)
+            else:
+                images[0].save(newpath, save_all=True, append_images=images[1:])
+        except OSError as e:
+            logger.warning(
+                f"Could not save the file as pdf. Error: {str(e)}",
+            )
+            return None
     return newpath
 
 
@@ -242,23 +241,19 @@ def consume_file(
                 f"Unsupported file format for barcode reader: {str(file_extension)}",
             )
         else:
-            if file_extension == ".tif" or file_extension == ".tiff":
-                converted_tiff = convert_from_tiff_to_pdf(path)
-            if converted_tiff:
-                separators = scan_file_for_separating_barcodes(converted_tiff)
+            if file_extension in {".tif", ".tiff"}:
+                file_to_process = convert_from_tiff_to_pdf(path)
             else:
-                separators = scan_file_for_separating_barcodes(path)
+                file_to_process = path
+
+            separators = scan_file_for_separating_barcodes(file_to_process)
+
             if separators:
-                if converted_tiff:
-                    logger.debug(
-                        f"Pages with separators found in: {str(converted_tiff)}",
-                    )
-                    document_list = separate_pages(converted_tiff, separators)
-                else:
-                    logger.debug(
-                        f"Pages with separators found in: {str(path)}",
-                    )
-                    document_list = separate_pages(path, separators)
+                logger.debug(
+                    f"Pages with separators found in: {str(path)}",
+                )
+                document_list = separate_pages(file_to_process, separators)
+
             if document_list:
                 for n, document in enumerate(document_list):
                     # save to consumption dir
@@ -271,8 +266,8 @@ def consume_file(
                 # if we got here, the document was successfully split
                 # and can safely be deleted
                 if converted_tiff:
-                    logger.debug("Deleting file {}".format(converted_tiff))
-                    os.unlink(converted_tiff)
+                    logger.debug("Deleting file {}".format(file_to_process))
+                    os.unlink(file_to_process)
                 logger.debug("Deleting file {}".format(path))
                 os.unlink(path)
                 # notify the sender, otherwise the progress bar
index baff2f5341794f870fd95406679b75ece1c756b9..7e5381defab25abd5d5600be021e30e74e569afb 100644 (file)
@@ -225,8 +225,7 @@ class TestTasks(DirectoriesMixin, TestCase):
         )
         dst = os.path.join(settings.SCRATCH_DIR, "simple.pdf")
         shutil.copy(test_file, dst)
-        target_file = tasks.convert_from_tiff_to_pdf(dst)
-        self.assertFalse(os.path.isfile(target_file))
+        self.assertIsNone(tasks.convert_from_tiff_to_pdf(dst))
 
     def test_scan_file_for_separating_barcodes(self):
         test_file = os.path.join(