diff --git a/test/examples/implicit_namespace_package_with_subpackages/ns1/pkg_implicit_namespace_package_test/pkgA/__init__.py b/test/examples/implicit_namespace_package_with_subpackages/ns1/pkg_implicit_namespace_package_test/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..8102d337 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,23 @@ def test_dict_completion(code, column, expected): assert [c.complete for c in comps] == expected +def test_implicit_namespace_package_with_subpackages(monkeypatch): + sys_path_dir1 = get_example_dir('implicit_namespace_package_with_subpackages', 'ns1') + sys_path_dir2 = get_example_dir('implicit_namespace_package_with_subpackages', 'ns2') + monkeypatch.syspath_prepend(sys_path_dir1) + monkeypatch.syspath_prepend(sys_path_dir2) + + import pkg_implicit_namespace_package_test + interpreter = jedi.Interpreter( + "pkg_implicit_namespace_package_test.", + namespaces=[locals()], + project=Project('.') + ) + comps = interpreter.complete() + expected = ["pkgA", "pkgB"] + assert [c.complete for c in comps] == expected + + @pytest.mark.parametrize( 'code, types', [ ('dct[1]', ['int']),