self.assertTrue(os.path.isfile(existing_archive_file))
self.assertEqual(doc.archive_filename, "none/my_doc_01.pdf")
+ @override_settings(PAPERLESS_FILENAME_FORMAT="{title}")
+ def test_move_original_only(self):
+ original = os.path.join(settings.ORIGINALS_DIR, "document_01.pdf")
+ archive = os.path.join(settings.ARCHIVE_DIR, "document.pdf")
+ Path(original).touch()
+ Path(archive).touch()
+
+ doc = Document.objects.create(mime_type="application/pdf", title="document", filename="document_01.pdf", checksum="A",
+ archive_checksum="B", archive_filename="document.pdf")
+
+ self.assertEqual(doc.filename, "document.pdf")
+ self.assertEqual(doc.archive_filename, "document.pdf")
+
+ self.assertTrue(os.path.isfile(doc.source_path))
+ self.assertTrue(os.path.isfile(doc.archive_path))
+
+ @override_settings(PAPERLESS_FILENAME_FORMAT="{title}")
+ def test_move_archive_only(self):
+ original = os.path.join(settings.ORIGINALS_DIR, "document.pdf")
+ archive = os.path.join(settings.ARCHIVE_DIR, "document_01.pdf")
+ Path(original).touch()
+ Path(archive).touch()
+
+ doc = Document.objects.create(mime_type="application/pdf", title="document", filename="document.pdf", checksum="A",
+ archive_checksum="B", archive_filename="document_01.pdf")
+
+ self.assertEqual(doc.filename, "document.pdf")
+ self.assertEqual(doc.archive_filename, "document.pdf")
+
+ self.assertTrue(os.path.isfile(doc.source_path))
+ self.assertTrue(os.path.isfile(doc.archive_path))
+
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/{title}")
@mock.patch("documents.signals.handlers.os.rename")
def test_move_archive_error(self, m):
doc = Document.objects.get(id=doc.id)
self.assertIsNotNone(doc.checksum)
+ self.assertIsNotNone(doc.archive_checksum)
self.assertTrue(os.path.isfile(doc.archive_path))
self.assertTrue(os.path.isfile(doc.source_path))
self.assertTrue(filecmp.cmp(sample_file, doc.source_path))
self.assertEqual(doc.archive_filename, "none/A.pdf")
+ @override_settings(PAPERLESS_FILENAME_FORMAT="{title}")
+ def test_naming_priorities(self):
+ doc1 = Document.objects.create(checksum="A", title="document", content="first document", mime_type="application/pdf", filename="document.pdf")
+ doc2 = Document.objects.create(checksum="B", title="document", content="second document", mime_type="application/pdf", filename="document_01.pdf")
+ shutil.copy(sample_file, os.path.join(self.dirs.originals_dir, f"document.pdf"))
+ shutil.copy(sample_file, os.path.join(self.dirs.originals_dir, f"document_01.pdf"))
+
+ handle_document(doc2.pk)
+ handle_document(doc1.pk)
+
+ doc1 = Document.objects.get(id=doc1.id)
+ doc2 = Document.objects.get(id=doc2.id)
+
+ self.assertEqual(doc1.archive_filename, "document.pdf")
+ self.assertEqual(doc2.archive_filename, "document_01.pdf")
class TestDecryptDocuments(TestCase):