diff options
Diffstat (limited to 'python/testSrc/com/jetbrains/python')
3 files changed, 57 insertions, 2 deletions
diff --git a/python/testSrc/com/jetbrains/python/PySmartEnterTest.java b/python/testSrc/com/jetbrains/python/PySmartEnterTest.java index b8421c9d7e18..09e0317051a0 100644 --- a/python/testSrc/com/jetbrains/python/PySmartEnterTest.java +++ b/python/testSrc/com/jetbrains/python/PySmartEnterTest.java @@ -179,4 +179,9 @@ public class PySmartEnterTest extends PyTestCase { public void testWithTargetIncomplete() { doTest(); } + + // PY-12877 + public void testWithExpressionMissing() { + doTest(); + } } diff --git a/python/testSrc/com/jetbrains/python/fixtures/PyTestCase.java b/python/testSrc/com/jetbrains/python/fixtures/PyTestCase.java index 6850c3b049a8..45d582a783a8 100644 --- a/python/testSrc/com/jetbrains/python/fixtures/PyTestCase.java +++ b/python/testSrc/com/jetbrains/python/fixtures/PyTestCase.java @@ -15,6 +15,9 @@ */ package com.jetbrains.python.fixtures; +import com.intellij.codeInsight.intention.IntentionAction; +import com.intellij.codeInspection.LocalQuickFix; +import com.intellij.codeInspection.ex.QuickFixWrapper; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.module.Module; @@ -28,6 +31,7 @@ import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDocumentManager; +import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.PlatformTestCase; @@ -131,8 +135,32 @@ public abstract class PyTestCase extends UsefulTestCase { } } - protected static void assertNotParsed(PyFile file) { - assertNull(PARSED_ERROR_MSG, ((PyFileImpl)file).getTreeElement()); + /** + * Searches for quickfix itetion by its class + * @param clazz quick fix class + * @param <T> quick fix class + * @return quick fix or null if nothing found + */ + @Nullable + public <T extends LocalQuickFix> T findQuickFixByClassInIntentions(@NotNull final Class<T> clazz) { + + for (final IntentionAction action : myFixture.getAvailableIntentions()) { + if ((action instanceof QuickFixWrapper)) { + final QuickFixWrapper quickFixWrapper = (QuickFixWrapper)action; + final LocalQuickFix fix = quickFixWrapper.getFix(); + if (clazz.isInstance(fix)) { + @SuppressWarnings("unchecked") + final T result = (T)fix; + return result; + } + } + } + return null; + } + + + protected static void assertNotParsed(PyFile file) { + assertNull(PARSED_ERROR_MSG, ((PyFileImpl)file).getTreeElement()); } /** @@ -144,6 +172,18 @@ public abstract class PyTestCase extends UsefulTestCase { return myFixture.findElementByText("class " + name, PyClass.class); } + /** + * Finds some text and moves cursor to it (if found) + * + * @param testToFind text to find + * @throws AssertionError if element not found + */ + protected void moveByText(@NotNull final String testToFind) { + final PsiElement element = myFixture.findElementByText(testToFind, PsiElement.class); + assert element != null : "No element found by text: " + testToFind; + myFixture.getEditor().getCaretModel().moveToOffset(element.getTextOffset()); + } + protected static class PyLightProjectDescriptor implements LightProjectDescriptor { private final String myPythonVersion; diff --git a/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java index 0c5e87ab1001..a0a2a1232b2e 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java @@ -371,6 +371,16 @@ public class PyUnresolvedReferencesInspectionTest extends PyInspectionTestCase { doMultiFileTest(); } + // PY-11472 + public void testUnusedImportBeforeStarImport() { + doMultiFileTest(); + } + + // PY-13585 + public void testUnusedImportBeforeStarDunderAll() { + doMultiFileTest(); + } + @NotNull @Override protected Class<? extends PyInspection> getInspectionClass() { |