diff --git a/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java b/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java index 1786f9140774..307f50c1c903 100644 --- a/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java +++ b/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java @@ -104,12 +104,12 @@ public class VariantsProcessor implements PsiScopeProcessor { if (element instanceof PyImportElement) { PyReferenceExpression ref = ((PyImportElement)element).getImportReference(); if (ref != null) { - final String name = ref.getName(); - if (nameIsAcceptable(name)) { + String name = ref.getName(); + if (name != null && nameIsAcceptable(name)) { PsiElement resolved = ref.getReference().resolve(); if (resolved instanceof PsiNamedElement) { handled_as_imported = true; - myVariants.put(name, setupItem(LookupElementBuilder.create((PsiNamedElement)resolved))); + myVariants.put(name, setupItem(LookupElementBuilder.create(resolved, name).setIcon(resolved.getIcon(0)))); } } } diff --git a/python/testData/completion/importedFile.after.py b/python/testData/completion/importedFile.after.py new file mode 100644 index 000000000000..1d29a58d3a07 --- /dev/null +++ b/python/testData/completion/importedFile.after.py @@ -0,0 +1,3 @@ +from root import nested_mod + +n = nested_mod \ No newline at end of file diff --git a/python/testData/completion/importedFile.py b/python/testData/completion/importedFile.py new file mode 100644 index 000000000000..1844ab32919f --- /dev/null +++ b/python/testData/completion/importedFile.py @@ -0,0 +1,3 @@ +from root import nested_mod + +n = nested_m \ 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 589324b50757..8e5dbf61ac13 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -213,4 +213,12 @@ public class PythonCompletionTest extends PyLightFixtureTestCase { myFixture.completeBasic(); myFixture.checkResultByFile("completion/importItself.after.py"); } + + public void testImportedFile() { // PY-1955 + final String dirname = "completion/"; + myFixture.copyDirectoryToProject(dirname + "root", dirname + "root"); + myFixture.configureByFile(dirname + "importedFile.py"); + myFixture.completeBasic(); + myFixture.checkResultByFile(dirname + "importedFile.after.py"); + } } \ No newline at end of file