diff --git a/test/examples/implicit_namespace_package_with_subpackages/ns1/pkg/pkgA/__init__.py b/test/examples/implicit_namespace_package_with_subpackages/ns1/pkg/pkgA/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/examples/implicit_namespace_package_with_subpackages/ns2/pkg/pkgB/__init__.py b/test/examples/implicit_namespace_package_with_subpackages/ns2/pkg/pkgB/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/test_api/test_interpreter.py b/test/test_api/test_interpreter.py index 1aa027bf..1141c7f0 100644 --- a/test/test_api/test_interpreter.py +++ b/test/test_api/test_interpreter.py @@ -9,8 +9,10 @@ import pytest import jedi import jedi.settings +from jedi import Project from jedi.inference.compiled import mixed from importlib import import_module +from test.helpers import get_example_dir class _GlobalNameSpace: @@ -591,6 +593,18 @@ def test_dict_completion(code, column, expected): assert [c.complete for c in comps] == expected +def test_implicit_namespace_package_with_subpackages(): + sys_path = [ + get_example_dir('implicit_namespace_package_with_subpackages', 'ns1'), + get_example_dir('implicit_namespace_package_with_subpackages', 'ns2'), + ] + project = Project('.', sys_path=sys_path) + interpreter = jedi.Interpreter("import pkg; pkg.", namespaces=[], project=project) + comps = interpreter.complete() + expected = ["pkgA", "pkgB"] + assert [c.complete for c in comps] == expected + + @pytest.mark.parametrize( 'code, types', [ ('dct[1]', ['int']),