PY-6955 Unused import not greyed out if also failing

This commit is contained in:
Ilya.Kazakevich
2014-01-21 02:13:02 +04:00
parent 2e110fdd2c
commit d2af13aa3a
15 changed files with 54 additions and 0 deletions
@@ -984,6 +984,10 @@ public class PyUnresolvedReferencesInspection extends PyInspection {
final PyImportElement importElement = (PyImportElement)unusedImport;
final PsiElement element = importElement.resolve();
if (element == null) {
if (importElement.getImportedQName() != null) {
//Mark import as unused even if it can't be resolved
result.add(importElement.getParent());
}
continue;
}
if (dunderAll != null && dunderAll.contains(importElement.getVisibleName())) {
@@ -1 +1,3 @@
from importSource import <error descr="Unresolved reference 'len'">len</error>
len()
@@ -0,0 +1 @@
<warning descr="Unused import statement">from my_module import <error descr="Unresolved reference 'eggs'">eggs</error></warning>
@@ -0,0 +1,2 @@
<warning descr="Unused import statement">from my_module import <error descr="Unresolved reference 'eggs'">eggs</error></warning>
<warning descr="Unused import statement">from my_module import <error descr="Unresolved reference 'eggs'">eggs</error></warning>
@@ -0,0 +1,4 @@
from my_package.my_module import <error descr="Unresolved reference 'eggs'">eggs</error>
from my_package.my_module import <error descr="Unresolved reference 'eggs'">eggs</error>
eggs()
@@ -1 +1,3 @@
import collections.<warning descr="No module named OrderedDict">OrderedDict</warning>
collections.OrderedDict()
@@ -1 +1,3 @@
import <error descr="No module named wurm">wurm</error>
wurm()
@@ -0,0 +1 @@
<warning descr="Unused import statement">import <error descr="No module named spam">spam</error></warning>
@@ -0,0 +1 @@
<warning descr="Unused import statement">import <error descr="No module named spam">spam</error>.eggs</warning>
@@ -28,6 +28,9 @@ public abstract class PyInspectionTestCase extends PyTestCase {
configureInspection();
}
protected void doMultiFileTest() {
doMultiFileTest("a.py");
}
protected void doMultiFileTest(@NotNull String filename) {
myFixture.copyDirectoryToProject(getTestDirectory(false), "");
myFixture.configureFromTempProjectFile(filename);
@@ -335,6 +335,31 @@ public class PyUnresolvedReferencesInspectionTest extends PyInspectionTestCase {
doTest();
}
// PY-6955
public void testUnusedUnresolvedModuleImported() {
doTest();
}
// PY-6955
public void testUnusedUnresolvedNameImported() {
doMultiFileTest();
}
// PY-6955
public void testUnusedUnresolvedNameImportedSeveralTimes() {
doMultiFileTest();
}
// PY-6955
public void testUsedUnresolvedNameImportedSeveralTimes() {
doMultiFileTest();
}
// PY-6955
public void testUnusedUnresolvedPackageImported() {
doTest();
}
@NotNull
@Override
protected Class<? extends PyInspection> getInspectionClass() {