mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	add tests
fix indention add more documentation Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
This commit is contained in:
		| @@ -624,12 +624,17 @@ PAPERLESS_CONSUMER_ENABLE_BARCODES=<bool> | |||||||
|     If no barcodes are detected in the uploaded file, no page separation |     If no barcodes are detected in the uploaded file, no page separation | ||||||
|     will happen. |     will happen. | ||||||
|  |  | ||||||
|  |     The original document will be removed and the separated pages will be | ||||||
|  |     saved as pdf. | ||||||
|  |  | ||||||
|     Defaults to false. |     Defaults to false. | ||||||
|  |  | ||||||
| PAPERLESS_CONSUMER_BARCODE_TIFF_SUPPORT=<bool> | PAPERLESS_CONSUMER_BARCODE_TIFF_SUPPORT=<bool> | ||||||
|     Whether TIFF image files should be scanned for barcodes. |     Whether TIFF image files should be scanned for barcodes. | ||||||
|     This will automatically convert any TIFF image(s) to pdfs for later |     This will automatically convert any TIFF image(s) to pdfs for later | ||||||
|     processing. |     processing. | ||||||
|  |     This only has an effect, if PAPERLESS_CONSUMER_ENABLE_BARCODES has been | ||||||
|  |     enabled. | ||||||
|  |  | ||||||
|     Defaults to false. |     Defaults to false. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -119,20 +119,21 @@ def convert_from_tiff_to_pdf(filepath: str) -> str: | |||||||
|             images[0].save(newpath) |             images[0].save(newpath) | ||||||
|         else: |         else: | ||||||
|             images[0].save(newpath, save_all=True, append_images=images[1:]) |             images[0].save(newpath, save_all=True, append_images=images[1:]) | ||||||
|         os.unlink(filepath) |  | ||||||
|     except OSError as e: |     except OSError as e: | ||||||
|         logger.warning( |         logger.warning( | ||||||
|             f"Could not save the file as pdf. " |             f"Could not save the file as pdf. " | ||||||
|             f"The original image file was not deleted. Error: " |             f"The original image file was not deleted. Error: " | ||||||
|             f"{str(e)}", |             f"{str(e)}", | ||||||
|         ) |         ) | ||||||
|  |         return "" | ||||||
|  |     os.unlink(filepath) | ||||||
|     image.close() |     image.close() | ||||||
|     return newpath |     return newpath | ||||||
|  |  | ||||||
|  |  | ||||||
| def scan_file_for_separating_barcodes(filepath: str) -> List[int]: | def scan_file_for_separating_barcodes(filepath: str) -> List[int]: | ||||||
|     """ |     """ | ||||||
|     Scan the provided file for page separating barcodes |     Scan the provided pdf file for page separating barcodes | ||||||
|     Returns a list of pagenumbers, which separate the file |     Returns a list of pagenumbers, which separate the file | ||||||
|     """ |     """ | ||||||
|     separator_page_numbers = [] |     separator_page_numbers = [] | ||||||
| @@ -149,7 +150,7 @@ def scan_file_for_separating_barcodes(filepath: str) -> List[int]: | |||||||
|  |  | ||||||
| def separate_pages(filepath: str, pages_to_split_on: List[int]) -> List[str]: | def separate_pages(filepath: str, pages_to_split_on: List[int]) -> List[str]: | ||||||
|     """ |     """ | ||||||
|     Separate the provided file on the pages_to_split_on. |     Separate the provided pdf file on the pages_to_split_on. | ||||||
|     The pages which are defined by page_numbers will be removed. |     The pages which are defined by page_numbers will be removed. | ||||||
|     Returns a list of (temporary) filepaths to consume. |     Returns a list of (temporary) filepaths to consume. | ||||||
|     These will need to be deleted later. |     These will need to be deleted later. | ||||||
|   | |||||||
| @@ -445,6 +445,43 @@ class TestTasks(DirectoriesMixin, TestCase): | |||||||
|  |  | ||||||
|         self.assertEqual(tasks.consume_file(dst), "File successfully split") |         self.assertEqual(tasks.consume_file(dst), "File successfully split") | ||||||
|  |  | ||||||
|  |     @override_settings( | ||||||
|  |         CONSUMER_ENABLE_BARCODES=True, | ||||||
|  |         CONSUMER_BARCODE_TIFF_SUPPORT=True, | ||||||
|  |     ) | ||||||
|  |     @mock.patch("documents.consumer.Consumer.try_consume_file") | ||||||
|  |     def test_consume_barcode_unsupported_jpg_file(self, m): | ||||||
|  |         """ | ||||||
|  |         This test assumes barcode and TIFF support are enabled and | ||||||
|  |         the user uploads an unsupported image file (e.g. jpg) | ||||||
|  |  | ||||||
|  |         The function shouldn't try to scan for separating barcodes | ||||||
|  |         and continue archiving the file as is. | ||||||
|  |         """ | ||||||
|  |         test_file = os.path.join( | ||||||
|  |             os.path.dirname(__file__), | ||||||
|  |             "samples", | ||||||
|  |             "simple.jpg", | ||||||
|  |         ) | ||||||
|  |         dst = os.path.join(settings.SCRATCH_DIR, "simple.jpg") | ||||||
|  |         shutil.copy(test_file, dst) | ||||||
|  |         with self.assertLogs("paperless.tasks", level="WARNING") as cm: | ||||||
|  |             self.assertIn("Success", tasks.consume_file(dst)) | ||||||
|  |         self.assertEqual( | ||||||
|  |             cm.output, | ||||||
|  |             [ | ||||||
|  |                 "WARNING:paperless.tasks:Unsupported file format for barcode reader: .jpg", | ||||||
|  |             ], | ||||||
|  |         ) | ||||||
|  |         m.assert_called_once() | ||||||
|  |  | ||||||
|  |         args, kwargs = m.call_args | ||||||
|  |         self.assertIsNone(kwargs["override_filename"]) | ||||||
|  |         self.assertIsNone(kwargs["override_title"]) | ||||||
|  |         self.assertIsNone(kwargs["override_correspondent_id"]) | ||||||
|  |         self.assertIsNone(kwargs["override_document_type_id"]) | ||||||
|  |         self.assertIsNone(kwargs["override_tag_ids"]) | ||||||
|  |  | ||||||
|     @mock.patch("documents.tasks.sanity_checker.check_sanity") |     @mock.patch("documents.tasks.sanity_checker.check_sanity") | ||||||
|     def test_sanity_check_success(self, m): |     def test_sanity_check_success(self, m): | ||||||
|         m.return_value = SanityCheckMessages() |         m.return_value = SanityCheckMessages() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Florian Brandes
					Florian Brandes