mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	test cases
This commit is contained in:
		@@ -13,8 +13,14 @@ from ...parsers import get_parser_class_for_mime_type
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
def _process_document(doc_in):
 | 
					def _process_document(doc_in):
 | 
				
			||||||
    document = Document.objects.get(id=doc_in)
 | 
					    document = Document.objects.get(id=doc_in)
 | 
				
			||||||
    parser = get_parser_class_for_mime_type(document.mime_type)(
 | 
					    parser_class = get_parser_class_for_mime_type(document.mime_type)
 | 
				
			||||||
        logging_group=None)
 | 
					
 | 
				
			||||||
 | 
					    if parser_class:
 | 
				
			||||||
 | 
					        parser = parser_class(logging_group=None)
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        print(f"{document} No parser for mime type {document.mime_type}")
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        thumb = parser.get_optimised_thumbnail(
 | 
					        thumb = parser.get_optimised_thumbnail(
 | 
				
			||||||
            document.source_path, document.mime_type)
 | 
					            document.source_path, document.mime_type)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								src/documents/tests/test_management_thumbnails.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/documents/tests/test_management_thumbnails.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					import os
 | 
				
			||||||
 | 
					import shutil
 | 
				
			||||||
 | 
					from unittest import mock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.core.management import call_command
 | 
				
			||||||
 | 
					from django.test import TestCase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from documents.management.commands.document_thumbnails import _process_document
 | 
				
			||||||
 | 
					from documents.models import Document, Tag, Correspondent, DocumentType
 | 
				
			||||||
 | 
					from documents.tests.utils import DirectoriesMixin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TestMakeThumbnails(DirectoriesMixin, TestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def make_models(self):
 | 
				
			||||||
 | 
					        self.d1 = Document.objects.create(checksum="A", title="A", content="first document", mime_type="application/pdf", filename="test.pdf")
 | 
				
			||||||
 | 
					        shutil.copy(os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), self.d1.source_path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.d2 = Document.objects.create(checksum="Ass", title="A", content="first document", mime_type="application/pdf", filename="test2.pdf")
 | 
				
			||||||
 | 
					        shutil.copy(os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), self.d2.source_path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def setUp(self) -> None:
 | 
				
			||||||
 | 
					        super(TestMakeThumbnails, self).setUp()
 | 
				
			||||||
 | 
					        self.make_models()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_process_document(self):
 | 
				
			||||||
 | 
					        self.assertFalse(os.path.isfile(self.d1.thumbnail_path))
 | 
				
			||||||
 | 
					        _process_document(self.d1.id)
 | 
				
			||||||
 | 
					        self.assertTrue(os.path.isfile(self.d1.thumbnail_path))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @mock.patch("documents.management.commands.document_thumbnails.shutil.move")
 | 
				
			||||||
 | 
					    def test_process_document_invalid_mime_type(self, m):
 | 
				
			||||||
 | 
					        self.d1.mime_type = "asdasdasd"
 | 
				
			||||||
 | 
					        self.d1.save()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _process_document(self.d1.id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        m.assert_not_called()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_command(self):
 | 
				
			||||||
 | 
					        self.assertFalse(os.path.isfile(self.d1.thumbnail_path))
 | 
				
			||||||
 | 
					        self.assertFalse(os.path.isfile(self.d2.thumbnail_path))
 | 
				
			||||||
 | 
					        call_command('document_thumbnails')
 | 
				
			||||||
 | 
					        self.assertTrue(os.path.isfile(self.d1.thumbnail_path))
 | 
				
			||||||
 | 
					        self.assertTrue(os.path.isfile(self.d2.thumbnail_path))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_command_documentid(self):
 | 
				
			||||||
 | 
					        self.assertFalse(os.path.isfile(self.d1.thumbnail_path))
 | 
				
			||||||
 | 
					        self.assertFalse(os.path.isfile(self.d2.thumbnail_path))
 | 
				
			||||||
 | 
					        call_command('document_thumbnails', '-d', f"{self.d1.id}")
 | 
				
			||||||
 | 
					        self.assertTrue(os.path.isfile(self.d1.thumbnail_path))
 | 
				
			||||||
 | 
					        self.assertFalse(os.path.isfile(self.d2.thumbnail_path))
 | 
				
			||||||
		Reference in New Issue
	
	Block a user