summaryrefslogtreecommitdiff
path: root/python/testSrc/com/jetbrains
diff options
context:
space:
mode:
Diffstat (limited to 'python/testSrc/com/jetbrains')
-rw-r--r--python/testSrc/com/jetbrains/python/PySmartEnterTest.java5
-rw-r--r--python/testSrc/com/jetbrains/python/fixtures/PyTestCase.java44
-rw-r--r--python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java10
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() {