diff --git a/jedi/inference/sys_path.py b/jedi/inference/sys_path.py index 23068e4b..38d96221 100644 --- a/jedi/inference/sys_path.py +++ b/jedi/inference/sys_path.py @@ -1,6 +1,6 @@ import os import re -from pathlib import Path, PurePath +from pathlib import Path from importlib.machinery import all_suffixes from jedi.inference.cache import inference_state_method_cache @@ -15,7 +15,7 @@ _BUILDOUT_PATH_INSERTION_LIMIT = 10 def _abs_path(module_context, path: str): - path = PurePath(path) + path = Path(path) if path.is_absolute(): return path @@ -219,7 +219,7 @@ def transform_path_to_dotted(sys_path, module_path): """ Returns the dotted path inside a sys.path as a list of names. e.g. - >>> transform_path_to_dotted(["/foo"], Path('/foo/bar/baz.py')) + >>> transform_path_to_dotted([str(Path("/foo").absolute())], Path('/foo/bar/baz.py').absolute()) (('bar', 'baz'), False) Returns (None, False) if the path doesn't really resolve to anything. diff --git a/test/test_inference/test_buildout_detection.py b/test/test_inference/test_buildout_detection.py index f15e9a78..4817339d 100644 --- a/test/test_inference/test_buildout_detection.py +++ b/test/test_inference/test_buildout_detection.py @@ -58,17 +58,17 @@ def test_sys_path_with_modifications(Script): """) paths = Script(code, path=path)._inference_state.get_sys_path() - assert '/tmp/.buildout/eggs/important_package.egg' in paths + assert os.path.abspath('/tmp/.buildout/eggs/important_package.egg') in paths def test_path_from_sys_path_assignment(Script): - code = dedent(""" + code = dedent(f""" #!/usr/bin/python import sys sys.path[0:0] = [ - '/usr/lib/python3.8/site-packages', - '/home/test/.buildout/eggs/important_package.egg' + {os.path.abspath('/usr/lib/python3.8/site-packages')!r}, + {os.path.abspath('/home/test/.buildout/eggs/important_package.egg')!r}, ] path[0:0] = [1] diff --git a/test/test_inference/test_sys_path.py b/test/test_inference/test_sys_path.py index e0c6d74e..2fa0e4df 100644 --- a/test/test_inference/test_sys_path.py +++ b/test/test_inference/test_sys_path.py @@ -2,7 +2,7 @@ import os from glob import glob import sys import shutil -from pathlib import Path, PurePath +from pathlib import Path import pytest @@ -18,9 +18,9 @@ def test_paths_from_assignment(Script): return set(sys_path._paths_from_assignment(script._get_module_context(), expr_stmt)) # Normalize paths for Windows. - path_a = PurePath('/foo/a') - path_b = PurePath('/foo/b') - path_c = PurePath('/foo/c') + path_a = Path('/foo/a').absolute() + path_b = Path('/foo/b').absolute() + path_c = Path('/foo/c').absolute() assert paths('sys.path[0:0] = ["a"]') == {path_a} assert paths('sys.path = ["b", 1, x + 3, y, "c"]') == {path_b, path_c}