Add locking for interval sources. This reduces the chance of repeated documents from long running email downloads.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -23,71 +23,6 @@ from .literals import (
|
||||
)
|
||||
|
||||
|
||||
@override_settings(OCR_AUTO_OCR=False)
|
||||
class UploadDocumentTestCase(BaseTestCase):
|
||||
"""
|
||||
Test creating documents
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(UploadDocumentTestCase, self).setUp()
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
self.document_type.delete()
|
||||
super(UploadDocumentTestCase, self).tearDown()
|
||||
|
||||
def test_issue_gh_163(self):
|
||||
"""
|
||||
Non-ASCII chars in document name failing in upload via watch folder
|
||||
gh-issue #163 https://github.com/mayan-edms/mayan-edms/issues/163
|
||||
"""
|
||||
|
||||
temporary_directory = mkdtemp()
|
||||
shutil.copy(TEST_NON_ASCII_DOCUMENT_PATH, temporary_directory)
|
||||
|
||||
watch_folder = WatchFolderSource.objects.create(
|
||||
document_type=self.document_type, folder_path=temporary_directory,
|
||||
uncompress=SOURCE_UNCOMPRESS_CHOICE_Y
|
||||
)
|
||||
watch_folder.check_source()
|
||||
|
||||
self.assertEqual(Document.objects.count(), 1)
|
||||
|
||||
document = Document.objects.first()
|
||||
|
||||
self.assertEqual(document.exists(), True)
|
||||
self.assertEqual(document.size, 17436)
|
||||
|
||||
self.assertEqual(document.file_mimetype, 'image/png')
|
||||
self.assertEqual(document.file_mime_encoding, 'binary')
|
||||
self.assertEqual(document.label, TEST_NON_ASCII_DOCUMENT_FILENAME)
|
||||
self.assertEqual(document.page_count, 1)
|
||||
|
||||
# Test Non-ASCII named documents inside Non-ASCII named compressed file
|
||||
|
||||
shutil.copy(
|
||||
TEST_NON_ASCII_COMPRESSED_DOCUMENT_PATH, temporary_directory
|
||||
)
|
||||
|
||||
watch_folder.check_source()
|
||||
document = Document.objects.all()[1]
|
||||
|
||||
self.assertEqual(Document.objects.count(), 2)
|
||||
|
||||
self.assertEqual(document.exists(), True)
|
||||
self.assertEqual(document.size, 17436)
|
||||
|
||||
self.assertEqual(document.file_mimetype, 'image/png')
|
||||
self.assertEqual(document.file_mime_encoding, 'binary')
|
||||
self.assertEqual(document.label, TEST_NON_ASCII_DOCUMENT_FILENAME)
|
||||
self.assertEqual(document.page_count, 1)
|
||||
|
||||
shutil.rmtree(temporary_directory)
|
||||
|
||||
|
||||
@override_settings(OCR_AUTO_OCR=False)
|
||||
class CompressedUploadsTestCase(BaseTestCase):
|
||||
def setUp(self):
|
||||
@@ -189,3 +124,67 @@ class EmailFilenameDecodingTestCase(BaseTestCase):
|
||||
'<Document: test-02.png>'
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@override_settings(OCR_AUTO_OCR=False)
|
||||
class UploadDocumentTestCase(BaseTestCase):
|
||||
"""
|
||||
Test creating documents
|
||||
"""
|
||||
def setUp(self):
|
||||
super(UploadDocumentTestCase, self).setUp()
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
self.document_type.delete()
|
||||
super(UploadDocumentTestCase, self).tearDown()
|
||||
|
||||
def test_issue_gh_163(self):
|
||||
"""
|
||||
Non-ASCII chars in document name failing in upload via watch folder
|
||||
gh-issue #163 https://github.com/mayan-edms/mayan-edms/issues/163
|
||||
"""
|
||||
|
||||
temporary_directory = mkdtemp()
|
||||
shutil.copy(TEST_NON_ASCII_DOCUMENT_PATH, temporary_directory)
|
||||
|
||||
watch_folder = WatchFolderSource.objects.create(
|
||||
document_type=self.document_type, folder_path=temporary_directory,
|
||||
uncompress=SOURCE_UNCOMPRESS_CHOICE_Y
|
||||
)
|
||||
watch_folder.check_source()
|
||||
|
||||
self.assertEqual(Document.objects.count(), 1)
|
||||
|
||||
document = Document.objects.first()
|
||||
|
||||
self.assertEqual(document.exists(), True)
|
||||
self.assertEqual(document.size, 17436)
|
||||
|
||||
self.assertEqual(document.file_mimetype, 'image/png')
|
||||
self.assertEqual(document.file_mime_encoding, 'binary')
|
||||
self.assertEqual(document.label, TEST_NON_ASCII_DOCUMENT_FILENAME)
|
||||
self.assertEqual(document.page_count, 1)
|
||||
|
||||
# Test Non-ASCII named documents inside Non-ASCII named compressed file
|
||||
|
||||
shutil.copy(
|
||||
TEST_NON_ASCII_COMPRESSED_DOCUMENT_PATH, temporary_directory
|
||||
)
|
||||
|
||||
watch_folder.check_source()
|
||||
document = Document.objects.all()[1]
|
||||
|
||||
self.assertEqual(Document.objects.count(), 2)
|
||||
|
||||
self.assertEqual(document.exists(), True)
|
||||
self.assertEqual(document.size, 17436)
|
||||
|
||||
self.assertEqual(document.file_mimetype, 'image/png')
|
||||
self.assertEqual(document.file_mime_encoding, 'binary')
|
||||
self.assertEqual(document.label, TEST_NON_ASCII_DOCUMENT_FILENAME)
|
||||
self.assertEqual(document.page_count, 1)
|
||||
|
||||
shutil.rmtree(temporary_directory)
|
||||
|
||||
Reference in New Issue
Block a user