PY-3201 is also correctly handled by unused imports inspection

This commit is contained in:
Dmitry Jemerov
2011-05-24 17:13:43 +04:00
parent 1a19cbf99b
commit 2117a06fc9
6 changed files with 40 additions and 2 deletions
@@ -414,7 +414,7 @@ public class PyUnresolvedReferencesInspection extends PyInspection {
Set<PyImportStatementBase> unusedStatements = new HashSet<PyImportStatementBase>();
for (NameDefiner unusedImport : unusedImports) {
PyImportStatementBase importStatement = PsiTreeUtil.getParentOfType(unusedImport, PyImportStatementBase.class);
if (importStatement != null && !unusedStatements.contains(importStatement)) {
if (importStatement != null && !unusedStatements.contains(importStatement) && !myUsedImports.contains(importStatement)) {
// don't remove as unused imports in try/except statements
if (PsiTreeUtil.getParentOfType(importStatement, PyTryExceptStatement.class) != null) {
continue;
@@ -0,0 +1,9 @@
import xlogging.handlers
import xlogging
class MultiProcessingLog(xlogging.Handler):
def __init__(self, *args):
xlogging.Handler.__init__(self)
self._handler = xlogging.handlers.RotatingFileHandler(*args)
MultiProcessingLog('a','a',1000,3,'utf8')
@@ -0,0 +1,2 @@
class Handler:
pass
@@ -0,0 +1,3 @@
class RotatingFileHandler:
def __init__(self, *args):
pass
@@ -2,6 +2,8 @@ package com.jetbrains.python;
import com.jetbrains.python.codeInsight.PyCompletionPatternsTest;
import com.jetbrains.python.inspections.PyArgumentListInspectionTest;
import com.jetbrains.python.inspections.PyCompatibilityInspectionTest;
import com.jetbrains.python.inspections.PyUnusedImportTest;
import com.jetbrains.python.refactoring.*;
import com.jetbrains.python.refactoring.classes.PyExtractSuperclassTest;
import com.jetbrains.python.refactoring.classes.PyPullUpTest;
@@ -74,7 +76,9 @@ public class PythonAllTestsSuite {
PyTypeParserTest.class,
PyOverrideTest.class,
PyBinaryModuleCompletionTest.class,
PyCompletionPatternsTest.class
PyCompletionPatternsTest.class,
PyCompatibilityInspectionTest.class,
PyUnusedImportTest.class
};
public static TestSuite suite() {
@@ -0,0 +1,20 @@
package com.jetbrains.python.inspections;
import com.jetbrains.python.fixtures.PyLightFixtureTestCase;
/**
* @author yole
*/
public class PyUnusedImportTest extends PyLightFixtureTestCase {
public void _testModuleAndSubmodule() { // PY-3626
myFixture.copyDirectoryToProject("inspections/unusedImport/moduleAndSubmodule", "");
myFixture.enableInspections(PyUnresolvedReferencesInspection.class);
myFixture.testHighlighting(true, false, false, "py3626.py");
}
public void testSubpackageInInitPy() { // PY-3201
myFixture.copyDirectoryToProject("inspections/unusedImport/subpackageInInitPy", "");
myFixture.enableInspections(PyUnresolvedReferencesInspection.class);
myFixture.testHighlighting(true, false, false, "package1/__init__.py");
}
}