From 6f893bf24f9e7b7b24f6845ecfabecc155d56e0d Mon Sep 17 00:00:00 2001 From: poikilos <7557867+poikilos@users.noreply.github.com> Date: Sun, 25 Feb 2024 14:39:49 -0500 Subject: [PATCH] Add a find_modpack test. --- .../mods/extra_parent/modpack1/mod1/mod.conf | 1 + .../mods/extra_parent/modpack1/mod1/init.lua | 0 .../mods/extra_parent/modpack1/mod1/mod.conf | 1 + .../modpack1/mod1/not_this_folder/init.lua | 1 + .../mods/extra_parent/modpack1/modpack.conf | 1 + .../mods/extra_parent/modpack2/mod2/init.lua | 0 .../mods/extra_parent/modpack2/mod2/mod.conf | 1 + .../modpack2/mod2/not_this_folder/init.lua | 1 + .../mods/extra_parent/modpack2/modpack.conf | 1 + tests/test_mtpatches.py | 40 +++++++++++++++++++ 10 files changed, 47 insertions(+) create mode 100644 tests/data/mod_game/mods/extra_parent/modpack1/mod1/mod.conf create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack1/mod1/init.lua create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack1/mod1/mod.conf create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack1/mod1/not_this_folder/init.lua create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack1/modpack.conf create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack2/mod2/init.lua create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack2/mod2/mod.conf create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack2/mod2/not_this_folder/init.lua create mode 100644 tests/data/modpack_game/mods/extra_parent/modpack2/modpack.conf diff --git a/tests/data/mod_game/mods/extra_parent/modpack1/mod1/mod.conf b/tests/data/mod_game/mods/extra_parent/modpack1/mod1/mod.conf new file mode 100644 index 0000000..1b5df7e --- /dev/null +++ b/tests/data/mod_game/mods/extra_parent/modpack1/mod1/mod.conf @@ -0,0 +1 @@ +name = mod1 diff --git a/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/init.lua b/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/init.lua new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/mod.conf b/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/mod.conf new file mode 100644 index 0000000..1b5df7e --- /dev/null +++ b/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/mod.conf @@ -0,0 +1 @@ +name = mod1 diff --git a/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/not_this_folder/init.lua b/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/not_this_folder/init.lua new file mode 100644 index 0000000..990e8a9 --- /dev/null +++ b/tests/data/modpack_game/mods/extra_parent/modpack1/mod1/not_this_folder/init.lua @@ -0,0 +1 @@ +-- This represents a backup of init.lua that should be ignored by the test. diff --git a/tests/data/modpack_game/mods/extra_parent/modpack1/modpack.conf b/tests/data/modpack_game/mods/extra_parent/modpack1/modpack.conf new file mode 100644 index 0000000..5b71b93 --- /dev/null +++ b/tests/data/modpack_game/mods/extra_parent/modpack1/modpack.conf @@ -0,0 +1 @@ +name = modpack1 diff --git a/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/init.lua b/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/init.lua new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/mod.conf b/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/mod.conf new file mode 100644 index 0000000..2063a25 --- /dev/null +++ b/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/mod.conf @@ -0,0 +1 @@ +name = mod2 diff --git a/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/not_this_folder/init.lua b/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/not_this_folder/init.lua new file mode 100644 index 0000000..990e8a9 --- /dev/null +++ b/tests/data/modpack_game/mods/extra_parent/modpack2/mod2/not_this_folder/init.lua @@ -0,0 +1 @@ +-- This represents a backup of init.lua that should be ignored by the test. diff --git a/tests/data/modpack_game/mods/extra_parent/modpack2/modpack.conf b/tests/data/modpack_game/mods/extra_parent/modpack2/modpack.conf new file mode 100644 index 0000000..22d1d9e --- /dev/null +++ b/tests/data/modpack_game/mods/extra_parent/modpack2/modpack.conf @@ -0,0 +1 @@ +name = modpack2 diff --git a/tests/test_mtpatches.py b/tests/test_mtpatches.py index 42f3f65..ef96549 100644 --- a/tests/test_mtpatches.py +++ b/tests/test_mtpatches.py @@ -14,6 +14,7 @@ from pyenliven.mtpatches import ( # noqa F402 get_shallowest_files_sub, diff_only_head, find_mod, + find_modpack, ) @@ -97,6 +98,11 @@ class TestMTPatches(unittest.TestCase): find_mod(game_path, "mod1"), os.path.join("mods", "extra_parent", "modpack1", "mod1") ) + self.assertEqual( + find_mod(os.path.join(TESTS_DATA_DIR, "modpack_game"), "mod2"), + os.path.join("mods", "extra_parent", "modpack2", "mod2") + ) + self.assertEqual( find_mod(os.path.join(game_path, "mods", "extra_parent", "modpack1", "mod1"), @@ -108,6 +114,40 @@ class TestMTPatches(unittest.TestCase): os.path.join("extra_parent", "modpack1", "mod1"), ) + def test_find_modpack(self): + game_path = os.path.join(TESTS_DATA_DIR, "modpack_game") + self.assertEqual( + find_modpack(game_path, "wrong_modpack"), + None + ) + self.assertEqual( + find_modpack(game_path, "modpack1"), + os.path.join("mods", "extra_parent", "modpack1") + ) + self.assertEqual( + find_modpack(os.path.join(TESTS_DATA_DIR, "modpack_game"), + "modpack2"), + os.path.join("mods", "extra_parent", "modpack2") + ) + + self.assertEqual( + find_modpack(os.path.join(game_path, "mods", "extra_parent", + "modpack1"), + "modpack1"), # Yes, still find mod1 ("") if root + "" + ) + self.assertEqual( + find_modpack(os.path.join(game_path, "mods", "extra_parent", + "modpack2"), + "modpack2"), # Yes, still find mod1 ("") if root + "" + ) + + self.assertEqual( + find_modpack(os.path.join(game_path, "mods"), "modpack1"), + os.path.join("extra_parent", "modpack1"), + ) + if __name__ == "__main__": unittest.main()