mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-18816 Extract assertType() methods in PyTestCase to remove duplication
This commit is contained in:
@@ -47,6 +47,7 @@ import org.junit.Test;
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.jetbrains.python.fixtures.PyTestCase.assertType;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
@@ -145,10 +146,7 @@ public class PythonSkeletonsTest extends PyEnvTestCase {
|
||||
ApplicationManager.getApplication().runReadAction(() -> {
|
||||
final PyExpression expr = myFixture.findElementByText("expr", PyExpression.class);
|
||||
final PsiFile file = myFixture.getFile();
|
||||
final TypeEvalContext context = TypeEvalContext.codeAnalysis(file.getProject(), file);
|
||||
final PyType type = context.getType(expr);
|
||||
final String actualType = PythonDocumentationProvider.getTypeName(type, context);
|
||||
assertEquals("int", actualType);
|
||||
assertType("int", expr, TypeEvalContext.codeAnalysis(file.getProject(), file));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -18,11 +18,9 @@ package com.jetbrains.python;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.jetbrains.python.documentation.PythonDocumentationProvider;
|
||||
import com.jetbrains.python.fixtures.PyTestCase;
|
||||
import com.jetbrains.python.psi.LanguageLevel;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.types.PyType;
|
||||
import com.jetbrains.python.psi.types.TypeEvalContext;
|
||||
|
||||
/**
|
||||
@@ -616,10 +614,4 @@ public class Py3TypeTest extends PyTestCase {
|
||||
assertType(expectedType, expr, TypeEvalContext.codeAnalysis(project, containingFile));
|
||||
assertType(expectedType, expr, TypeEvalContext.userInitiated(project, containingFile));
|
||||
}
|
||||
|
||||
private static void assertType(String expectedType, PyExpression expr, TypeEvalContext context) {
|
||||
final PyType actual = context.getType(expr);
|
||||
final String actualType = PythonDocumentationProvider.getTypeName(actual, context);
|
||||
assertEquals(expectedType, actualType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package com.jetbrains.python;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.jetbrains.python.documentation.PythonDocumentationProvider;
|
||||
import com.jetbrains.python.documentation.docstrings.DocStringFormat;
|
||||
import com.jetbrains.python.fixtures.PyTestCase;
|
||||
import com.jetbrains.python.psi.LanguageLevel;
|
||||
@@ -2005,9 +2004,7 @@ public class PyTypeTest extends PyTestCase {
|
||||
}
|
||||
|
||||
private static void doTest(final String expectedType, final PyExpression expr, final TypeEvalContext context) {
|
||||
PyType actual = context.getType(expr);
|
||||
final String actualType = PythonDocumentationProvider.getTypeName(actual, context);
|
||||
assertEquals(expectedType, actualType);
|
||||
assertType(expectedType, expr, context);
|
||||
}
|
||||
|
||||
private void doTest(@NotNull final String expectedType, @NotNull final String text) {
|
||||
@@ -2017,9 +2014,7 @@ public class PyTypeTest extends PyTestCase {
|
||||
private static void checkTypes(@NotNull String expectedType, @Nullable PyExpression expr) {
|
||||
assertNotNull(expr);
|
||||
for (TypeEvalContext context : getTypeEvalContexts(expr)) {
|
||||
final PyType actual = context.getType(expr);
|
||||
final String actualType = PythonDocumentationProvider.getTypeName(actual, context);
|
||||
assertEquals("Failed in " + context, expectedType, actualType);
|
||||
assertType(expectedType, expr, context);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,11 +21,9 @@ import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiLanguageInjectionHost;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.jetbrains.python.documentation.PythonDocumentationProvider;
|
||||
import com.jetbrains.python.fixtures.PyTestCase;
|
||||
import com.jetbrains.python.psi.LanguageLevel;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.types.PyType;
|
||||
import com.jetbrains.python.psi.types.TypeEvalContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -993,13 +991,7 @@ public class PyTypingTest extends PyTestCase {
|
||||
final PyExpression expr = myFixture.findElementByText("expr", PyExpression.class);
|
||||
final TypeEvalContext codeAnalysis = TypeEvalContext.codeAnalysis(expr.getProject(),expr.getContainingFile());
|
||||
final TypeEvalContext userInitiated = TypeEvalContext.userInitiated(expr.getProject(), expr.getContainingFile()).withTracing();
|
||||
assertType(expectedType, expr, codeAnalysis, "code analysis");
|
||||
assertType(expectedType, expr, userInitiated, "user initiated");
|
||||
}
|
||||
|
||||
private static void assertType(String expectedType, PyExpression expr, TypeEvalContext context, String contextName) {
|
||||
final PyType actual = context.getType(expr);
|
||||
final String actualType = PythonDocumentationProvider.getTypeName(actual, context);
|
||||
assertEquals("Failed in " + contextName + " context", expectedType, actualType);
|
||||
assertType("Failed in code analysis context", expectedType, expr, codeAnalysis);
|
||||
assertType("Failed in user initiated context", expectedType, expr, userInitiated);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,14 +62,14 @@ import com.jetbrains.python.PythonHelpersLocator;
|
||||
import com.jetbrains.python.PythonLanguage;
|
||||
import com.jetbrains.python.PythonTestUtil;
|
||||
import com.jetbrains.python.documentation.PyDocumentationSettings;
|
||||
import com.jetbrains.python.documentation.PythonDocumentationProvider;
|
||||
import com.jetbrains.python.documentation.docstrings.DocStringFormat;
|
||||
import com.jetbrains.python.formatter.PyCodeStyleSettings;
|
||||
import com.jetbrains.python.psi.LanguageLevel;
|
||||
import com.jetbrains.python.psi.PyClass;
|
||||
import com.jetbrains.python.psi.PyFile;
|
||||
import com.jetbrains.python.psi.PyUtil;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.impl.PyFileImpl;
|
||||
import com.jetbrains.python.psi.impl.PythonLanguageLevelPusher;
|
||||
import com.jetbrains.python.psi.types.PyType;
|
||||
import com.jetbrains.python.psi.types.TypeEvalContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.junit.Assert;
|
||||
@@ -434,5 +434,19 @@ public abstract class PyTestCase extends UsefulTestCase {
|
||||
assertNotNull(file);
|
||||
return file.findElementAt(myFixture.getCaretOffset());
|
||||
}
|
||||
|
||||
public static void assertType(@NotNull String expectedType, @NotNull PyTypedElement element, @NotNull TypeEvalContext context) {
|
||||
assertType("Failed in " + context + " context", expectedType, element, context);
|
||||
}
|
||||
|
||||
public static void assertType(@NotNull String message,
|
||||
@NotNull String expectedType,
|
||||
@NotNull PyTypedElement element,
|
||||
@NotNull TypeEvalContext context) {
|
||||
final PyType actual = context.getType(element);
|
||||
final String actualType = PythonDocumentationProvider.getTypeName(actual, context);
|
||||
assertEquals(message, expectedType, actualType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -24,11 +24,9 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.intellij.testFramework.fixtures.CodeInsightTestFixture;
|
||||
import com.jetbrains.python.documentation.PythonDocumentationProvider;
|
||||
import com.jetbrains.python.fixtures.PyTestCase;
|
||||
import com.jetbrains.python.psi.LanguageLevel;
|
||||
import com.jetbrains.python.psi.PyTypedElement;
|
||||
import com.jetbrains.python.psi.types.PyType;
|
||||
import com.jetbrains.python.psi.types.TypeEvalContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -78,12 +76,6 @@ public class PyiTypeTest extends PyTestCase {
|
||||
assertType(expectedType, typedElement, TypeEvalContext.userInitiated(project, containingFile));
|
||||
}
|
||||
|
||||
private static void assertType(@NotNull String expectedType, @NotNull PyTypedElement element, @NotNull TypeEvalContext context) {
|
||||
final PyType actual = context.getType(element);
|
||||
final String actualType = PythonDocumentationProvider.getTypeName(actual, context);
|
||||
assertEquals("Failed in " + context + " context", expectedType, actualType);
|
||||
}
|
||||
|
||||
public void testFunctionParameter() {
|
||||
doTest("int");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user