From 15c483ed60954d0bfa0e3c0c243bc91d4cc068ca Mon Sep 17 00:00:00 2001 From: R1kaB3rN <100738684+R1kaB3rN@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:34:54 -0800 Subject: [PATCH] ulwgl_test: add tests for steam compat --- ulwgl_test.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/ulwgl_test.py b/ulwgl_test.py index af24c76..18c1257 100644 --- a/ulwgl_test.py +++ b/ulwgl_test.py @@ -100,6 +100,45 @@ class TestGameLauncher(unittest.TestCase): if self.test_proton_dir.exists(): rmtree(self.test_proton_dir.as_posix()) + + def test_steamcompat_nodir(self): + """Test _get_from_steamcompat when a Proton doesn't exist in the Steam compat dir. + + In this case, the None should be returned to signal that we should continue with downloading the latest Proton + """ + result = None + files = [("", ""), (self.test_archive.name, "")] + + result = ulwgl_dl_util._get_from_steamcompat( + self.env, self.test_compat, self.test_cache, files + ) + + self.assertFalse(result, "Expected None after calling _get_from_steamcompat") + self.assertFalse(self.env["PROTONPATH"], "Expected PROTONPATH to not be set") + + def test_steamcompat(self): + """Test _get_from_steamcompat. + + When a Proton exist in .local/share/Steam/compatibilitytools.d, use it when PROTONPATH is unset + """ + result = None + files = [("", ""), (self.test_archive.name, "")] + + ulwgl_dl_util._extract_dir(self.test_archive, self.test_compat) + + result = ulwgl_dl_util._get_from_steamcompat( + self.env, self.test_compat, self.test_cache, files + ) + + self.assertTrue(result is self.env, "Expected the same reference") + self.assertEqual( + self.env["PROTONPATH"], + self.test_compat.joinpath( + self.test_archive.name[: self.test_archive.name.find(".tar.gz")] + ).as_posix(), + "Expected PROTONPATH to be proton dir in compat", + ) + def test_cleanup_no_exists(self): """Test _cleanup when passed files that do not exist.