diff --git a/jedi/inference/imports.py b/jedi/inference/imports.py index 56d6ebb91..c1a4953fb 100644 --- a/jedi/inference/imports.py +++ b/jedi/inference/imports.py @@ -422,20 +422,13 @@ def import_module(inference_state, import_names, parent_module_value, sys_path): # The module might not be a package. return NO_VALUES - for path in paths: - # At the moment we are only using one path. So this is - # not important to be correct. - if not isinstance(path, list): - path = [path] - file_io_or_ns, is_pkg = inference_state.compiled_subprocess.get_module_info( - string=import_names[-1], - path=path, - full_name=module_name, - is_global_search=False, - ) - if is_pkg is not None: - break - else: + file_io_or_ns, is_pkg = inference_state.compiled_subprocess.get_module_info( + string=import_names[-1], + path=paths, + full_name=module_name, + is_global_search=False, + ) + if is_pkg is None: return NO_VALUES if isinstance(file_io_or_ns, ImplicitNSInfo): diff --git a/test/completion/namespace1/pkg1/pkg2/mod1.py b/test/completion/namespace1/pkg1/pkg2/mod1.py new file mode 100644 index 000000000..84d278381 --- /dev/null +++ b/test/completion/namespace1/pkg1/pkg2/mod1.py @@ -0,0 +1 @@ +mod1_name = 'mod1' diff --git a/test/completion/namespace2/pkg1/pkg2/mod2.py b/test/completion/namespace2/pkg1/pkg2/mod2.py new file mode 100644 index 000000000..75dac3246 --- /dev/null +++ b/test/completion/namespace2/pkg1/pkg2/mod2.py @@ -0,0 +1 @@ +mod2_name = 'mod2' diff --git a/test/completion/ns_path.py b/test/completion/ns_path.py new file mode 100644 index 000000000..419c1bd7a --- /dev/null +++ b/test/completion/ns_path.py @@ -0,0 +1,18 @@ +import sys +import os +from os.path import dirname + +sys.path.insert(0, os.path.join(dirname(__file__), 'namespace2')) +sys.path.insert(0, os.path.join(dirname(__file__), 'namespace1')) + +#? ['mod1'] +import pkg1.pkg2.mod1 + +#? ['mod2'] +import pkg1.pkg2.mod2 + +#? ['mod1_name'] +pkg1.pkg2.mod1.mod1_name + +#? ['mod2_name'] +pkg1.pkg2.mod2.mod2_name