diff --git a/python/src/com/jetbrains/python/psi/impl/PyFromImportStatementImpl.java b/python/src/com/jetbrains/python/psi/impl/PyFromImportStatementImpl.java index 0a8a015b62f1..9ac5bae4811d 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyFromImportStatementImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyFromImportStatementImpl.java @@ -17,11 +17,12 @@ package com.jetbrains.python.psi.impl; import com.google.common.collect.ImmutableList; import com.intellij.lang.ASTNode; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; +import com.intellij.psi.scope.DelegatingScopeProcessor; import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.stubs.IStubElementType; import com.intellij.psi.util.QualifiedName; -import com.intellij.util.ArrayFactory; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.ContainerUtil; import com.jetbrains.python.PyElementTypes; @@ -161,7 +162,17 @@ public class PyFromImportStatementImpl extends PyBaseElementImpl \ No newline at end of file diff --git a/python/testData/completion/namesReexportedViaStarImport/pkg/__init__.py b/python/testData/completion/namesReexportedViaStarImport/pkg/__init__.py new file mode 100644 index 000000000000..0ef7b811ce65 --- /dev/null +++ b/python/testData/completion/namesReexportedViaStarImport/pkg/__init__.py @@ -0,0 +1,2 @@ +from .mod1 import * +from .mod2 import * diff --git a/python/testData/completion/namesReexportedViaStarImport/pkg/mod1.py b/python/testData/completion/namesReexportedViaStarImport/pkg/mod1.py new file mode 100644 index 000000000000..c56290a94e2e --- /dev/null +++ b/python/testData/completion/namesReexportedViaStarImport/pkg/mod1.py @@ -0,0 +1,2 @@ +foo = 1 +_foo = 2 \ No newline at end of file diff --git a/python/testData/completion/namesReexportedViaStarImport/pkg/mod2.py b/python/testData/completion/namesReexportedViaStarImport/pkg/mod2.py new file mode 100644 index 000000000000..eed13f89da1e --- /dev/null +++ b/python/testData/completion/namesReexportedViaStarImport/pkg/mod2.py @@ -0,0 +1,4 @@ +__all__ = ['_bar'] + +bar = 1 +_bar = 2 diff --git a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java index 4e105d631e98..6e66e1a7d0d8 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -1105,6 +1105,15 @@ public class PythonCompletionTest extends PyTestCase { assertContainsElements(suggested, "baz"); } + // PY-22570 + public void testNamesReexportedViaStarImport() { + myFixture.copyDirectoryToProject(getTestName(true), ""); + myFixture.configureByFile("a.py"); + myFixture.completeBasic(); + final List variants = myFixture.getLookupElementStrings(); + assertSameElements(variants, "mod1", "mod2", "foo", "_bar"); + } + @Override protected String getTestDataPath() { return super.getTestDataPath() + "/completion";