diff --git a/legendary/lfs/tests/test_wine_helpers.py b/legendary/lfs/tests/test_wine_helpers.py new file mode 100644 index 0000000..45aa8e8 --- /dev/null +++ b/legendary/lfs/tests/test_wine_helpers.py @@ -0,0 +1,14 @@ +import unittest +import os +from unittest.mock import patch +from legendary.lfs.wine_helpers import case_insensitive_file_search + +class TestWineHelpers(unittest.TestCase): + @patch('os.path.exists') + def test_case_insensitive_file_search_nonexistent_dir(self, mock_exists): + mock_exists.return_value = False + result = case_insensitive_file_search('/nonexistent/path/to/file.txt') + self.assertIsNone(result) + +if __name__ == '__main__': + unittest.main() diff --git a/legendary/lfs/wine_helpers.py b/legendary/lfs/wine_helpers.py index e884a90..1a55a1c 100644 --- a/legendary/lfs/wine_helpers.py +++ b/legendary/lfs/wine_helpers.py @@ -25,6 +25,9 @@ def case_insensitive_file_search(path: str) -> str: Similar to case_insensitive_path_search: Finds a file case-insensitively Note that this *does* work on Windows, although it's rather pointless """ + if not os.path.exists(os.path.dirname(path)): + return None + path_parts = os.path.normpath(path).split(os.sep) # If path_parts[0] is empty, we're on Unix and thus start searching at / if not path_parts[0]: