PY-46054 Fix missing same directory completion variants

(cherry picked from commit fb17e9285a39846b93708fb33c9822bff0a8da35)

IJ-MR-4823

GitOrigin-RevId: 1e0b31e14ff2c1ee95358b7bf68576f413fed71c
This commit is contained in:
andrey.matveev
2021-02-25 05:04:46 +00:00
committed by intellij-monorepo-bot
parent dba164b988
commit 01f2002956
5 changed files with 17 additions and 1 deletions
@@ -2,6 +2,7 @@
package com.jetbrains.python.psi.resolve;
import com.google.common.collect.Lists;
import com.intellij.codeInsight.completion.CompletionUtilCoreImpl;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.projectRoots.Sdk;
@@ -47,7 +48,8 @@ public final class ResolveImportUtil {
if (file instanceof PyFile) {
final PyFile pyFile = (PyFile)file;
if (pyFile.getLanguageLevel().isPy3K()) {
if (foothold.getManager().isInProject(foothold) && Registry.is("python.explicit.namespace.packages")) {
PsiElement originalFoothold = CompletionUtilCoreImpl.getOriginalOrSelf(foothold);
if (foothold.getManager().isInProject(originalFoothold) && Registry.is("python.explicit.namespace.packages")) {
return false;
}
return true;
@@ -0,0 +1,2 @@
def foo():
pass
@@ -0,0 +1 @@
from lib import foo
@@ -0,0 +1 @@
from lib import f<caret>
@@ -491,6 +491,16 @@ public class Py3CompletionTest extends PyTestCase {
});
}
// PY-46054
public void testFromImportFromSameDirectoryModule() {
runWithLanguageLevel(LanguageLevel.getLatest(), () -> {
myFixture.copyDirectoryToProject(getTestName(true), "");
myFixture.configureByFile("foo_bar/sample.py");
myFixture.completeBasic();
myFixture.checkResultByFile(getTestName(true) + "/foo_bar/sample.after.py");
});
}
@Override
protected String getTestDataPath() {
return super.getTestDataPath() + "/completion";