mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-11-21 04:36:53 -06:00
Development: fix unreachable code around assertRaises blocks (#11365)
* tests: general cleanup and fixes for runnning under docker This now allows tests to be run under a locally built or production docker image with something like: `docker run --rm -v $PWD:/usr/src/paperless --entrypoint=bash paperlessngx/paperless-ngx:latest -c "uv run pytest"` Specific fixes: - fix unreachable code around `assertRaises` blocks - fix `assertInt` typos - fix `str(e)` vs `str(e.exception)` issues - skip permission-based checks when root (in a docker container) - catch `OSError` problems when instantiating `INotify` and skip inotify-based tests when it's unavailable. * Reverts most files to dev while keeping the exception assert fixes --------- Co-authored-by: Trenton H <797416+stumpylog@users.noreply.github.com>
This commit is contained in:
@@ -571,7 +571,7 @@ class TestExportImport(
|
|||||||
with self.assertRaises(CommandError) as e:
|
with self.assertRaises(CommandError) as e:
|
||||||
call_command(*args)
|
call_command(*args)
|
||||||
|
|
||||||
self.assertEqual("That path isn't a directory", str(e))
|
self.assertEqual("That path doesn't exist", str(e.exception))
|
||||||
|
|
||||||
def test_export_target_exists_but_is_file(self):
|
def test_export_target_exists_but_is_file(self):
|
||||||
"""
|
"""
|
||||||
@@ -589,7 +589,7 @@ class TestExportImport(
|
|||||||
with self.assertRaises(CommandError) as e:
|
with self.assertRaises(CommandError) as e:
|
||||||
call_command(*args)
|
call_command(*args)
|
||||||
|
|
||||||
self.assertEqual("That path isn't a directory", str(e))
|
self.assertEqual("That path isn't a directory", str(e.exception))
|
||||||
|
|
||||||
def test_export_target_not_writable(self):
|
def test_export_target_not_writable(self):
|
||||||
"""
|
"""
|
||||||
@@ -608,7 +608,10 @@ class TestExportImport(
|
|||||||
with self.assertRaises(CommandError) as e:
|
with self.assertRaises(CommandError) as e:
|
||||||
call_command(*args)
|
call_command(*args)
|
||||||
|
|
||||||
self.assertEqual("That path doesn't appear to be writable", str(e))
|
self.assertEqual(
|
||||||
|
"That path doesn't appear to be writable",
|
||||||
|
str(e.exception),
|
||||||
|
)
|
||||||
|
|
||||||
def test_no_archive(self):
|
def test_no_archive(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class TestFuzzyMatchCommand(TestCase):
|
|||||||
"""
|
"""
|
||||||
with self.assertRaises(CommandError) as e:
|
with self.assertRaises(CommandError) as e:
|
||||||
self.call_command("--ratio", "-1")
|
self.call_command("--ratio", "-1")
|
||||||
self.assertIn("The ratio must be between 0 and 100", str(e))
|
self.assertIn("The ratio must be between 0 and 100", str(e.exception))
|
||||||
|
|
||||||
def test_invalid_ratio_upper_limit(self):
|
def test_invalid_ratio_upper_limit(self):
|
||||||
"""
|
"""
|
||||||
@@ -47,7 +47,7 @@ class TestFuzzyMatchCommand(TestCase):
|
|||||||
"""
|
"""
|
||||||
with self.assertRaises(CommandError) as e:
|
with self.assertRaises(CommandError) as e:
|
||||||
self.call_command("--ratio", "101")
|
self.call_command("--ratio", "101")
|
||||||
self.assertIn("The ratio must be between 0 and 100", str(e))
|
self.assertIn("The ratio must be between 0 and 100", str(e.exception))
|
||||||
|
|
||||||
def test_invalid_process_count(self):
|
def test_invalid_process_count(self):
|
||||||
"""
|
"""
|
||||||
@@ -60,7 +60,7 @@ class TestFuzzyMatchCommand(TestCase):
|
|||||||
"""
|
"""
|
||||||
with self.assertRaises(CommandError) as e:
|
with self.assertRaises(CommandError) as e:
|
||||||
self.call_command("--processes", "0")
|
self.call_command("--processes", "0")
|
||||||
self.assertIn("There must be at least 1 process", str(e))
|
self.assertIn("There must be at least 1 process", str(e.exception))
|
||||||
|
|
||||||
def test_no_matches(self):
|
def test_no_matches(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class TestCommandImport(
|
|||||||
)
|
)
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
"That directory doesn't appear to contain a manifest.json file.",
|
"That directory doesn't appear to contain a manifest.json file.",
|
||||||
str(e),
|
str(e.exception),
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_check_manifest_malformed(self):
|
def test_check_manifest_malformed(self):
|
||||||
@@ -68,7 +68,7 @@ class TestCommandImport(
|
|||||||
)
|
)
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
"The manifest file contains a record which does not refer to an actual document file.",
|
"The manifest file contains a record which does not refer to an actual document file.",
|
||||||
str(e),
|
str(e.exception),
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_check_manifest_file_not_found(self):
|
def test_check_manifest_file_not_found(self):
|
||||||
@@ -95,7 +95,7 @@ class TestCommandImport(
|
|||||||
"--no-progress-bar",
|
"--no-progress-bar",
|
||||||
str(self.dirs.scratch_dir),
|
str(self.dirs.scratch_dir),
|
||||||
)
|
)
|
||||||
self.assertIn('The manifest file refers to "noexist.pdf"', str(e))
|
self.assertIn('The manifest file refers to "noexist.pdf"', str(e.exception))
|
||||||
|
|
||||||
def test_import_permission_error(self):
|
def test_import_permission_error(self):
|
||||||
"""
|
"""
|
||||||
@@ -129,14 +129,14 @@ class TestCommandImport(
|
|||||||
cmd.data_only = False
|
cmd.data_only = False
|
||||||
with self.assertRaises(CommandError) as cm:
|
with self.assertRaises(CommandError) as cm:
|
||||||
cmd.check_manifest_validity()
|
cmd.check_manifest_validity()
|
||||||
self.assertInt("Failed to read from original file", str(cm.exception))
|
self.assertIn("Failed to read from original file", str(cm.exception))
|
||||||
|
|
||||||
original_path.chmod(0o444)
|
original_path.chmod(0o444)
|
||||||
archive_path.chmod(0o222)
|
archive_path.chmod(0o222)
|
||||||
|
|
||||||
with self.assertRaises(CommandError) as cm:
|
with self.assertRaises(CommandError) as cm:
|
||||||
cmd.check_manifest_validity()
|
cmd.check_manifest_validity()
|
||||||
self.assertInt("Failed to read from archive file", str(cm.exception))
|
self.assertIn("Failed to read from archive file", str(cm.exception))
|
||||||
|
|
||||||
def test_import_source_not_existing(self):
|
def test_import_source_not_existing(self):
|
||||||
"""
|
"""
|
||||||
@@ -149,7 +149,7 @@ class TestCommandImport(
|
|||||||
"""
|
"""
|
||||||
with self.assertRaises(CommandError) as cm:
|
with self.assertRaises(CommandError) as cm:
|
||||||
call_command("document_importer", Path("/tmp/notapath"))
|
call_command("document_importer", Path("/tmp/notapath"))
|
||||||
self.assertInt("That path doesn't exist", str(cm.exception))
|
self.assertIn("That path doesn't exist", str(cm.exception))
|
||||||
|
|
||||||
def test_import_source_not_readable(self):
|
def test_import_source_not_readable(self):
|
||||||
"""
|
"""
|
||||||
@@ -165,7 +165,7 @@ class TestCommandImport(
|
|||||||
path.chmod(0o222)
|
path.chmod(0o222)
|
||||||
with self.assertRaises(CommandError) as cm:
|
with self.assertRaises(CommandError) as cm:
|
||||||
call_command("document_importer", path)
|
call_command("document_importer", path)
|
||||||
self.assertInt(
|
self.assertIn(
|
||||||
"That path doesn't appear to be readable",
|
"That path doesn't appear to be readable",
|
||||||
str(cm.exception),
|
str(cm.exception),
|
||||||
)
|
)
|
||||||
@@ -185,8 +185,7 @@ class TestCommandImport(
|
|||||||
|
|
||||||
with self.assertRaises(CommandError) as e:
|
with self.assertRaises(CommandError) as e:
|
||||||
call_command("document_importer", "--no-progress-bar", str(path))
|
call_command("document_importer", "--no-progress-bar", str(path))
|
||||||
|
self.assertIn("That path doesn't exist", str(e.exception))
|
||||||
self.assertIn("That path doesn't exist", str(e))
|
|
||||||
|
|
||||||
def test_import_files_exist(self):
|
def test_import_files_exist(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user