diff --git a/python/src/com/jetbrains/python/psi/impl/ResolveImportUtil.java b/python/src/com/jetbrains/python/psi/impl/ResolveImportUtil.java index e81d353ec8c5..a0369ff40c1f 100644 --- a/python/src/com/jetbrains/python/psi/impl/ResolveImportUtil.java +++ b/python/src/com/jetbrains/python/psi/impl/ResolveImportUtil.java @@ -7,6 +7,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; +import com.intellij.psi.PsiFile; import com.jetbrains.python.psi.*; import org.jetbrains.annotations.Nullable; @@ -86,7 +87,10 @@ public class ResolveImportUtil { return PyResolveUtil.treeWalkUp(new PyResolveUtil.ResolveProcessor(referencedName), parent, null, importRef); } else if (parent instanceof PsiDirectory) { - return ((PsiDirectory)parent).findFile(referencedName + ".py"); + final PsiDirectory dir = (PsiDirectory)parent; + final PsiFile file = dir.findFile(referencedName + ".py"); + if (file != null) return file; + return dir.findSubdirectory(referencedName); } else { return null; diff --git a/python/testData/resolve/multiFile/fromQualifiedPackageImportFile/FromQualifiedPackageImportFile.py b/python/testData/resolve/multiFile/fromQualifiedPackageImportFile/FromQualifiedPackageImportFile.py index 470c830aa62b..55d1906a043e 100644 --- a/python/testData/resolve/multiFile/fromQualifiedPackageImportFile/FromQualifiedPackageImportFile.py +++ b/python/testData/resolve/multiFile/fromQualifiedPackageImportFile/FromQualifiedPackageImportFile.py @@ -1,2 +1,2 @@ -from mypackage.myfile import myclass -# \ No newline at end of file +from mypackage.child import testfile +# \ No newline at end of file diff --git a/python/testData/resolve/multiFile/fromQualifiedPackageImportFile/mypackage/child/testfile.py b/python/testData/resolve/multiFile/fromQualifiedPackageImportFile/mypackage/child/testfile.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java index 26419abe11d6..49273a87d9a6 100644 --- a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java +++ b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java @@ -62,6 +62,12 @@ public class PyMultiFileResolveTest extends CodeInsightTestCase { assertEquals("func", ((PyFunction) element).getName()); } + public void testFromQualifiedPackageImportFile() throws Exception { + PsiElement element = doResolve(); + assertTrue(element instanceof PsiFile); + assertEquals("testfile.py", ((PsiFile) element).getName()); + } + private PsiElement doResolve() throws Exception { String testName = getTestName(true); String fileName = getTestName(false) + ".py";