aboutsummaryrefslogtreecommitdiffstats
path: root/packaging-tools/tests/test_bldinstallercommon.py
diff options
context:
space:
mode:
Diffstat (limited to 'packaging-tools/tests/test_bldinstallercommon.py')
-rw-r--r--packaging-tools/tests/test_bldinstallercommon.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/packaging-tools/tests/test_bldinstallercommon.py b/packaging-tools/tests/test_bldinstallercommon.py
index 88c068b81..08bf6085d 100644
--- a/packaging-tools/tests/test_bldinstallercommon.py
+++ b/packaging-tools/tests/test_bldinstallercommon.py
@@ -45,6 +45,7 @@ from bldinstallercommon import (
locate_paths,
replace_in_files,
search_for_files,
+ strip_dirs,
)
from installer_utils import PackagingError
@@ -230,6 +231,48 @@ class TestCommon(unittest.TestCase):
result = calculate_relpath(path1, path2)
self.assertEqual(result, expected)
+ def test_strip_dirs(self) -> None:
+ with TemporaryDirectory() as temp_dir:
+ temp_dir.path.joinpath("remove_dir", "sub_dir").mkdir(parents=True, exist_ok=True)
+ strip_dirs(temp_dir.path)
+ self.assertTrue(temp_dir.path.joinpath("sub_dir").exists())
+ self.assertFalse(temp_dir.path.joinpath("remove_dir").exists())
+
+ def test_strip_dirs_multiple_iterations(self) -> None:
+ with TemporaryDirectory() as temp_dir:
+ temp_dir.path.joinpath("remove_dir", "remove_dir2", "sub_dir").mkdir(
+ parents=True, exist_ok=True
+ )
+ strip_dirs(temp_dir.path, iterations=2)
+ self.assertTrue(temp_dir.path.joinpath("sub_dir").exists())
+ self.assertFalse(temp_dir.path.joinpath("remove_dir").exists())
+
+ def test_strip_dirs_no_iterations(self) -> None:
+ with TemporaryDirectory() as temp_dir:
+ temp_dir.path.joinpath("no_remove_dir", "sub_dir").mkdir(parents=True, exist_ok=True)
+ strip_dirs(temp_dir.path, iterations=0)
+ self.assertTrue(temp_dir.path.joinpath("no_remove_dir", "sub_dir").exists())
+
+ def test_strip_dirs_identical_name(self) -> None:
+ with TemporaryDirectory() as temp_dir:
+ temp_dir.path.joinpath("dir_name", "dir_name").mkdir(parents=True, exist_ok=True)
+ strip_dirs(temp_dir.path)
+ self.assertTrue(temp_dir.path.joinpath("dir_name").exists())
+ self.assertFalse(temp_dir.path.joinpath("dir_name", "dir_name").exists())
+
+ def test_strip_dirs_invalid_subdir_count(self) -> None:
+ with TemporaryDirectory() as temp_dir:
+ with self.assertRaises(IOError):
+ temp_dir.path.joinpath("remove_dir").mkdir(parents=True, exist_ok=True)
+ temp_dir.path.joinpath("another_dir").mkdir(parents=True, exist_ok=True)
+ strip_dirs(temp_dir.path)
+
+ def test_strip_dirs_not_a_dir(self) -> None:
+ with TemporaryDirectory() as temp_dir:
+ with self.assertRaises(IOError):
+ temp_dir.path.joinpath("remove_dir").touch(exist_ok=True)
+ strip_dirs(temp_dir.path)
+
if __name__ == "__main__":
unittest.main()