diff --git a/python/src/com/jetbrains/python/psi/types/PyModuleType.java b/python/src/com/jetbrains/python/psi/types/PyModuleType.java index f2dc67c10c70..db5a9ba3f1ae 100644 --- a/python/src/com/jetbrains/python/psi/types/PyModuleType.java +++ b/python/src/com/jetbrains/python/psi/types/PyModuleType.java @@ -308,7 +308,7 @@ public class PyModuleType implements PyType { // Modules don't descend from obje return !(psiElement instanceof PyImportElement) || PsiTreeUtil.getParentOfType(psiElement, PyImportStatementBase.class) instanceof PyFromImportStatement; } - }, new PyUtil.UnderscoreFilter(0)); + }, null); if (suppressParentheses) { processor.suppressParentheses(); } diff --git a/python/testData/completion/modulePrivateNamesCompletedInsideImport/a.py b/python/testData/completion/modulePrivateNamesCompletedInsideImport/a.py new file mode 100644 index 000000000000..4aa7c1830b82 --- /dev/null +++ b/python/testData/completion/modulePrivateNamesCompletedInsideImport/a.py @@ -0,0 +1 @@ +from module import \ No newline at end of file diff --git a/python/testData/completion/modulePrivateNamesCompletedInsideImport/module.py b/python/testData/completion/modulePrivateNamesCompletedInsideImport/module.py new file mode 100644 index 000000000000..0febd2f26c01 --- /dev/null +++ b/python/testData/completion/modulePrivateNamesCompletedInsideImport/module.py @@ -0,0 +1,3 @@ +normal_name = 'foo' +_private_name = 'bar' +__magic_name__ = 'baz' \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java index b57ae35baa17..d2e322288271 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -615,4 +615,15 @@ public class PythonCompletionTest extends PyTestCase { " __metaclass__ = \n"); } + + // PY-13140 + public void testModulePrivateNamesCompletedInsideImport() { + //doMultiFileTest(); + myFixture.copyDirectoryToProject("completion/" + getTestName(true), ""); + myFixture.configureByFile("a.py"); + myFixture.completeBasic(); + List suggested = myFixture.getLookupElementStrings(); + assertNotNull(suggested); + assertContainsElements(suggested, "normal_name", "_private_name", "__magic_name__"); + } }