mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Add: more tests
This commit is contained in:
parent
d43b6a924d
commit
4772480c83
@ -97,6 +97,45 @@ class TestDate(TestCase):
|
|||||||
self.assertEqual(document.generate_source_filename(),
|
self.assertEqual(document.generate_source_filename(),
|
||||||
"test/test-0000001.pdf.gpg")
|
"test/test-0000001.pdf.gpg")
|
||||||
|
|
||||||
|
@override_settings(MEDIA_ROOT="/tmp/paperless-tests-{}".
|
||||||
|
format(str(uuid4())[:8]))
|
||||||
|
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
||||||
|
"{correspondent}")
|
||||||
|
def test_file_renaming_missing_permissions(self):
|
||||||
|
self.add_to_deletion_list(settings.MEDIA_ROOT)
|
||||||
|
|
||||||
|
document = Document()
|
||||||
|
document.file_type = "pdf"
|
||||||
|
document.storage_type = Document.STORAGE_TYPE_UNENCRYPTED
|
||||||
|
document.save()
|
||||||
|
|
||||||
|
# Ensure that filename is properly generated
|
||||||
|
tmp = document.source_filename
|
||||||
|
self.assertEqual(document.generate_source_filename(),
|
||||||
|
"none/none-0000001.pdf")
|
||||||
|
document.create_source_directory()
|
||||||
|
Path(document.source_path).touch()
|
||||||
|
|
||||||
|
# Test source_path
|
||||||
|
self.assertEqual(document.source_path, settings.MEDIA_ROOT +
|
||||||
|
"/documents/originals/none/none-0000001.pdf")
|
||||||
|
|
||||||
|
# Make the folder read- and execute-only (no writing and no renaming)
|
||||||
|
os.chmod(settings.MEDIA_ROOT + "/documents/originals/none", 0o555)
|
||||||
|
|
||||||
|
# Set a correspondent and save the document
|
||||||
|
document.correspondent = Correspondent.objects.get_or_create(
|
||||||
|
name="test")[0]
|
||||||
|
document.save()
|
||||||
|
|
||||||
|
# Check proper handling of files
|
||||||
|
self.assertEqual(os.path.isfile(settings.MEDIA_ROOT + "/documents/" +
|
||||||
|
"originals/none/none-0000001.pdf"), True)
|
||||||
|
self.assertEqual(document.source_filename,
|
||||||
|
"none/none-0000001.pdf")
|
||||||
|
|
||||||
|
os.chmod(settings.MEDIA_ROOT + "/documents/originals/none", 0o666)
|
||||||
|
|
||||||
@override_settings(MEDIA_ROOT="/tmp/paperless-tests-{}".
|
@override_settings(MEDIA_ROOT="/tmp/paperless-tests-{}".
|
||||||
format(str(uuid4())[:8]))
|
format(str(uuid4())[:8]))
|
||||||
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
||||||
@ -123,6 +162,16 @@ class TestDate(TestCase):
|
|||||||
self.assertEqual(os.path.isdir(settings.MEDIA_ROOT +
|
self.assertEqual(os.path.isdir(settings.MEDIA_ROOT +
|
||||||
"/documents/originals/none"), False)
|
"/documents/originals/none"), False)
|
||||||
|
|
||||||
|
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
||||||
|
"{correspondent}")
|
||||||
|
def test_document_delete_nofile(self):
|
||||||
|
document = Document()
|
||||||
|
document.file_type = "pdf"
|
||||||
|
document.storage_type = Document.STORAGE_TYPE_UNENCRYPTED
|
||||||
|
document.save()
|
||||||
|
|
||||||
|
document.delete()
|
||||||
|
|
||||||
@override_settings(MEDIA_ROOT="/tmp/paperless-tests-{}".
|
@override_settings(MEDIA_ROOT="/tmp/paperless-tests-{}".
|
||||||
format(str(uuid4())[:8]))
|
format(str(uuid4())[:8]))
|
||||||
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
||||||
@ -393,6 +442,8 @@ class TestDate(TestCase):
|
|||||||
"test/test-0000001.pdf")
|
"test/test-0000001.pdf")
|
||||||
self.assertEqual(os.path.isfile(settings.MEDIA_ROOT + "/documents/" +
|
self.assertEqual(os.path.isfile(settings.MEDIA_ROOT + "/documents/" +
|
||||||
"originals/test/test-0000001.pdf"), True)
|
"originals/test/test-0000001.pdf"), True)
|
||||||
|
self.assertEqual(os.path.isfile(settings.MEDIA_ROOT + "/documents/" +
|
||||||
|
"originals/none/none-0000001.pdf"), False)
|
||||||
|
|
||||||
# Set new correspondent and expect document to be saved properly
|
# Set new correspondent and expect document to be saved properly
|
||||||
document.correspondent = Correspondent.objects.get_or_create(
|
document.correspondent = Correspondent.objects.get_or_create(
|
||||||
@ -442,6 +493,8 @@ class TestDate(TestCase):
|
|||||||
"test/test-0000001.pdf.gpg")
|
"test/test-0000001.pdf.gpg")
|
||||||
self.assertEqual(os.path.isfile(settings.MEDIA_ROOT + "/documents/" +
|
self.assertEqual(os.path.isfile(settings.MEDIA_ROOT + "/documents/" +
|
||||||
"originals/test/test-0000001.pdf.gpg"), True)
|
"originals/test/test-0000001.pdf.gpg"), True)
|
||||||
|
self.assertEqual(os.path.isfile(settings.MEDIA_ROOT + "/documents/" +
|
||||||
|
"originals/none/none-0000001.pdf"), False)
|
||||||
|
|
||||||
# Set new correspondent and expect document to be saved properly
|
# Set new correspondent and expect document to be saved properly
|
||||||
document.correspondent = Correspondent.objects.get_or_create(
|
document.correspondent = Correspondent.objects.get_or_create(
|
||||||
@ -459,3 +512,105 @@ class TestDate(TestCase):
|
|||||||
"/documents/originals/test"), False)
|
"/documents/originals/test"), False)
|
||||||
self.assertEqual(document.generate_source_filename(),
|
self.assertEqual(document.generate_source_filename(),
|
||||||
"foo/foo-0000001.pdf.gpg")
|
"foo/foo-0000001.pdf.gpg")
|
||||||
|
|
||||||
|
def test_delete_all_empty_subdirectories(self):
|
||||||
|
# Create our working directory
|
||||||
|
tmp = "/tmp/paperless-tests-{}".format(str(uuid4())[:8])
|
||||||
|
os.makedirs(tmp)
|
||||||
|
self.add_to_deletion_list(tmp)
|
||||||
|
|
||||||
|
os.makedirs(os.path.join(tmp, "empty"))
|
||||||
|
os.makedirs(os.path.join(tmp, "empty", "subdirectory"))
|
||||||
|
|
||||||
|
os.makedirs(os.path.join(tmp, "notempty"))
|
||||||
|
Path(os.path.join(tmp, "notempty", "file")).touch()
|
||||||
|
|
||||||
|
Document.delete_all_empty_subdirectories(tmp)
|
||||||
|
|
||||||
|
self.assertEqual(os.path.isdir(os.path.join(tmp, "notempty")), True)
|
||||||
|
self.assertEqual(os.path.isdir(os.path.join(tmp, "empty")), False)
|
||||||
|
self.assertEqual(os.path.isfile(
|
||||||
|
os.path.join(tmp, "notempty", "file")), True)
|
||||||
|
|
||||||
|
def test_try_delete_empty_directories(self):
|
||||||
|
# Create our working directory
|
||||||
|
tmp = "/tmp/paperless-tests-{}".format(str(uuid4())[:8])
|
||||||
|
os.makedirs(tmp)
|
||||||
|
self.add_to_deletion_list(tmp)
|
||||||
|
|
||||||
|
os.makedirs(os.path.join(tmp, "notempty"))
|
||||||
|
Path(os.path.join(tmp, "notempty", "file")).touch()
|
||||||
|
os.makedirs(os.path.join(tmp, "notempty", "empty"))
|
||||||
|
|
||||||
|
Document.try_delete_empty_directories(
|
||||||
|
os.path.join(tmp, "notempty", "empty"))
|
||||||
|
self.assertEqual(os.path.isdir(os.path.join(tmp, "notempty")), True)
|
||||||
|
self.assertEqual(os.path.isfile(
|
||||||
|
os.path.join(tmp, "notempty", "file")), True)
|
||||||
|
self.assertEqual(os.path.isdir(
|
||||||
|
os.path.join(tmp, "notempty", "empty")), False)
|
||||||
|
|
||||||
|
@override_settings(MEDIA_ROOT="/tmp/paperless-tests-{}".
|
||||||
|
format(str(uuid4())[:8]))
|
||||||
|
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
||||||
|
"{correspondent}")
|
||||||
|
def test_document_accidentally_deleted(self):
|
||||||
|
self.add_to_deletion_list(settings.MEDIA_ROOT)
|
||||||
|
|
||||||
|
document = Document()
|
||||||
|
document.file_type = "pdf"
|
||||||
|
document.storage_type = Document.STORAGE_TYPE_UNENCRYPTED
|
||||||
|
document.save()
|
||||||
|
|
||||||
|
# Ensure that filename is properly generated
|
||||||
|
tmp = document.source_filename
|
||||||
|
self.assertEqual(document.generate_source_filename(),
|
||||||
|
"none/none-0000001.pdf")
|
||||||
|
document.create_source_directory()
|
||||||
|
Path(document.source_path).touch()
|
||||||
|
|
||||||
|
# Test source_path
|
||||||
|
self.assertEqual(document.source_path, settings.MEDIA_ROOT +
|
||||||
|
"/documents/originals/none/none-0000001.pdf")
|
||||||
|
|
||||||
|
# Delete the document "illegaly"
|
||||||
|
os.remove(settings.MEDIA_ROOT + "/documents/originals/" +
|
||||||
|
"none/none-0000001.pdf")
|
||||||
|
|
||||||
|
# Set new correspondent and expect document to be saved properly
|
||||||
|
document.correspondent = Correspondent.objects.get_or_create(
|
||||||
|
name="foo")[0]
|
||||||
|
document.save()
|
||||||
|
|
||||||
|
# Check proper handling of files
|
||||||
|
self.assertEqual(os.path.isdir(settings.MEDIA_ROOT +
|
||||||
|
"/documents/originals/none"), True)
|
||||||
|
self.assertEqual(document.source_filename,
|
||||||
|
"none/none-0000001.pdf")
|
||||||
|
|
||||||
|
@override_settings(MEDIA_ROOT="/tmp/paperless-tests-{}".
|
||||||
|
format(str(uuid4())[:8]))
|
||||||
|
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/" +
|
||||||
|
"{correspondent}")
|
||||||
|
def test_set_filename(self):
|
||||||
|
self.add_to_deletion_list(settings.MEDIA_ROOT)
|
||||||
|
|
||||||
|
document = Document()
|
||||||
|
document.file_type = "pdf"
|
||||||
|
document.storage_type = Document.STORAGE_TYPE_UNENCRYPTED
|
||||||
|
document.save()
|
||||||
|
|
||||||
|
# Ensure that filename is properly generated
|
||||||
|
tmp = document.source_filename
|
||||||
|
self.assertEqual(document.generate_source_filename(),
|
||||||
|
"none/none-0000001.pdf")
|
||||||
|
document.create_source_directory()
|
||||||
|
Path(document.source_path).touch()
|
||||||
|
|
||||||
|
# Set existing filename
|
||||||
|
document.set_filename(tmp)
|
||||||
|
self.assertEqual(document.source_filename, "none/none-0000001.pdf")
|
||||||
|
|
||||||
|
# Set non-existing filename
|
||||||
|
document.set_filename("doesnotexist")
|
||||||
|
self.assertEqual(document.source_filename, "none/none-0000001.pdf")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user