import sys import os import platform sys.path.insert(1, os.path.join(sys.path[0], "../../")) import dataroot import pytest pytestmark = pytest.mark.skipif( platform.system() != "Windows", reason="Windows-specific path test" ) def test_import_well_paths_with_backslashes(rips_instance, initialize_test): """Test that Windows-style paths with backslashes are correctly handled. This test verifies the fix for issue #13435 where backslashes in Windows paths were incorrectly interpreted as escape characters when passed from Python to ResInsight via gRPC. """ case_root_path = dataroot.PATH + "/TEST10K_FLT_LGR_NNC" case_path = case_root_path + "/TEST10K_FLT_LGR_NNC.EGRID" case = rips_instance.project.load_case(path=case_path) assert len(case.grids()) == 2 # Build paths using forward slashes first, then convert to Windows-style backslashes well_path_a = os.path.abspath( os.path.join(case_root_path, "wellpath_a.dev") ).replace("/", "\\") well_path_b = os.path.abspath( os.path.join(case_root_path, "wellpath_b.dev") ).replace("/", "\\") # The paths now contain backslashes (e.g., "C:\path\to\wellpath_a.dev") # This tests the fix for issue #13435 where backslashes were incorrectly # interpreted as escape characters well_path_files = [well_path_a, well_path_b] well_path_names = rips_instance.project.import_well_paths(well_path_files) assert len(well_path_names) == 2 wells = rips_instance.project.well_paths() assert len(wells) == 2 assert wells[0].name == "Well Path A" assert wells[1].name == "Well Path B"