one more case of import resolving

This commit is contained in:
Dmitry Jemerov
2008-03-12 20:37:49 +03:00
parent 299e0b1dcb
commit 82678cf115
4 changed files with 13 additions and 3 deletions
@@ -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;
@@ -1,2 +1,2 @@
from mypackage.myfile import myclass
# <ref>
from mypackage.child import testfile
# <ref>
@@ -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";