mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-19674 Treat all relative (with dots) "from" imports as application local imports
This commit is contained in:
@@ -225,6 +225,9 @@ public class AddImportHelper {
|
||||
if (fromImportStatement.isFromFuture()) {
|
||||
return ImportPriority.FUTURE;
|
||||
}
|
||||
if (fromImportStatement.getRelativeLevel() > 0) {
|
||||
return ImportPriority.PROJECT;
|
||||
}
|
||||
resolved = fromImportStatement.resolveImportSource();
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -16,6 +16,7 @@ from alphabet import B, A
|
||||
from alphabet import C
|
||||
from alphabet import D
|
||||
from b import func
|
||||
|
||||
from . import m1
|
||||
from . import m4, m5
|
||||
from .pkg import m3
|
||||
|
||||
@@ -12,12 +12,13 @@ from alphabet import D
|
||||
from b import func
|
||||
from
|
||||
import foo # broken
|
||||
from . import m1
|
||||
import # broken
|
||||
from alphabet import *
|
||||
from .. import m2
|
||||
from alphabet import C
|
||||
from alphabet import B, A
|
||||
|
||||
from . import m1
|
||||
from .. import m2
|
||||
from .pkg import m3
|
||||
from . import m4, m5
|
||||
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
import re
|
||||
|
||||
from . import foo
|
||||
from .module import A
|
||||
|
||||
print(re, foo, A)
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import re
|
||||
from . import foo
|
||||
from .module import A
|
||||
|
||||
print(re, foo, A)
|
||||
@@ -182,6 +182,15 @@ public class PyOptimizeImportsTest extends PyTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
// PY-19674
|
||||
public void testUnresolvedRelativeImportsShouldBeInProjectGroup() {
|
||||
final String testName = getTestName(true);
|
||||
myFixture.copyDirectoryToProject(testName, "");
|
||||
myFixture.configureByFile("pkg/main.py");
|
||||
OptimizeImportsAction.actionPerformedImpl(DataManager.getInstance().getDataContext(myFixture.getEditor().getContentComponent()));
|
||||
myFixture.checkResultByFile(testName + "/pkg/main.after.py");
|
||||
}
|
||||
|
||||
private void doTest() {
|
||||
myFixture.configureByFile(getTestName(true) + ".py");
|
||||
OptimizeImportsAction.actionPerformedImpl(DataManager.getInstance().getDataContext(myFixture.getEditor().getContentComponent()));
|
||||
|
||||
Reference in New Issue
Block a user