moving tests to community

This commit is contained in:
Dmitry Jemerov
2013-09-27 15:19:27 +02:00
parent 1bab1fc47d
commit 0a69cab05d
26 changed files with 342 additions and 412 deletions
+1 -1
View File
@@ -16,7 +16,7 @@
<orderEntry type="library" name="XmlRPC" level="project" />
<orderEntry type="module" module-name="xdebugger-api" />
<orderEntry type="library" name="http-client-3.1" level="project" />
<orderEntry type="module" module-name="RegExpSupport" />
<orderEntry type="module" module-name="RegExpSupport" exported="" />
<orderEntry type="module" module-name="testRunner" />
<orderEntry type="module" module-name="smRunner" />
<orderEntry type="module" module-name="spellchecker" />
@@ -1,6 +1,5 @@
package com.jetbrains.python.quickFixes;
package com.jetbrains.python;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.inspections.PyUnresolvedReferencesInspection;
/**
@@ -1,6 +1,5 @@
package com.jetbrains.python.quickFixes;
package com.jetbrains.python;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.inspections.PyClassHasNoInitInspection;
import com.jetbrains.python.inspections.PyUnresolvedReferencesInspection;
@@ -4,6 +4,7 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReference;
import com.intellij.testFramework.LightProjectDescriptor;
import com.jetbrains.python.fixtures.PyResolveTestCase;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.psi.LanguageLevel;
import com.jetbrains.python.psi.PyFunction;
import com.jetbrains.python.psi.impl.PythonLanguageLevelPusher;
@@ -14,13 +15,13 @@ import com.jetbrains.python.psi.impl.PythonLanguageLevelPusher;
public class Py3ResolveTest extends PyResolveTestCase {
@Override
protected LightProjectDescriptor getProjectDescriptor() {
return ourPy3Descriptor;
return PyTestCase.ourPy3Descriptor;
}
@Override
protected PsiElement doResolve() {
myFixture.configureByFile("resolve/" + getTestName(false) + ".py");
final PsiReference ref = findReferenceByMarker(myFixture.getFile());
final PsiReference ref = PyResolveTestCase.findReferenceByMarker(myFixture.getFile());
return ref.resolve();
}
@@ -7,6 +7,7 @@ import com.jetbrains.python.psi.PyAssignmentStatement;
import com.jetbrains.python.psi.PyExpression;
import com.jetbrains.python.psi.PySubscriptionExpression;
import com.jetbrains.python.psi.PyTargetExpression;
import junit.framework.Assert;
import java.util.List;
import java.util.Map;
@@ -26,134 +27,134 @@ public class PyAssignmentMappingTest extends LightMarkedTestCase {
public void testSimple() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(2, marks.size());
Assert.assertEquals(2, marks.size());
PsiElement src = marks.get("<src>").getParent(); // const -> expr;
PsiElement dst = marks.get("<dst>").getParent(); // ident -> target expr
assertTrue(dst instanceof PyTargetExpression);
Assert.assertTrue(dst instanceof PyTargetExpression);
PyAssignmentStatement stmt = (PyAssignmentStatement)dst.getParent();
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(1, mapping.size());
Assert.assertEquals(1, mapping.size());
Pair<PyExpression, PyExpression> pair = mapping.get(0);
assertEquals(dst, pair.getFirst());
assertEquals(src, pair.getSecond());
Assert.assertEquals(dst, pair.getFirst());
Assert.assertEquals(src, pair.getSecond());
}
public void testSubscribedSource() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(2, marks.size());
Assert.assertEquals(2, marks.size());
PsiElement src = marks.get("<src>").getParent().getParent(); // const -> ref foo -> subscr expr;
PsiElement dst = marks.get("<dst>").getParent(); // ident -> target expr
assertTrue(dst instanceof PyTargetExpression);
Assert.assertTrue(dst instanceof PyTargetExpression);
PyAssignmentStatement stmt = (PyAssignmentStatement)dst.getParent();
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(1, mapping.size());
Assert.assertEquals(1, mapping.size());
Pair<PyExpression, PyExpression> pair = mapping.get(0);
assertEquals(dst, pair.getFirst());
assertEquals(src, pair.getSecond());
Assert.assertEquals(dst, pair.getFirst());
Assert.assertEquals(src, pair.getSecond());
}
public void testSubscribedTarget() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(2, marks.size());
Assert.assertEquals(2, marks.size());
PsiElement src = marks.get("<src>").getParent(); // const -> expr;
PsiElement dst = marks.get("<dst>").getParent().getParent(); // ident -> target expr
assertTrue(dst instanceof PySubscriptionExpression);
Assert.assertTrue(dst instanceof PySubscriptionExpression);
PyAssignmentStatement stmt = (PyAssignmentStatement)src.getParent();
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(1, mapping.size());
Assert.assertEquals(1, mapping.size());
Pair<PyExpression, PyExpression> pair = mapping.get(0);
assertEquals(dst, pair.getFirst());
assertEquals(src, pair.getSecond());
Assert.assertEquals(dst, pair.getFirst());
Assert.assertEquals(src, pair.getSecond());
}
public void testMultiple() throws Exception {
Map<String, PsiElement> marks = loadTest();
final int TARGET_NUM = 3;
assertEquals(TARGET_NUM+1, marks.size());
Assert.assertEquals(TARGET_NUM + 1, marks.size());
PsiElement src = marks.get("<src>").getParent(); // const -> expr;
PsiElement[] dsts = new PsiElement[TARGET_NUM];
for (int i=0; i<TARGET_NUM; i+=1) {
PsiElement dst = marks.get("<dst" + String.valueOf(i+1) +">").getParent(); // ident -> target expr
assertTrue(dst instanceof PyTargetExpression);
Assert.assertTrue(dst instanceof PyTargetExpression);
dsts[i] = dst;
}
PyAssignmentStatement stmt = (PyAssignmentStatement)src.getParent();
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(TARGET_NUM, mapping.size());
Assert.assertEquals(TARGET_NUM, mapping.size());
for (int i=0; i<TARGET_NUM; i+=1) {
Pair<PyExpression, PyExpression> pair = mapping.get(i);
assertEquals(dsts[i], pair.getFirst());
assertEquals(src, pair.getSecond());
Assert.assertEquals(dsts[i], pair.getFirst());
Assert.assertEquals(src, pair.getSecond());
}
}
public void testTupleMapped() throws Exception {
Map<String, PsiElement> marks = loadTest();
final int PAIR_NUM = 2;
assertEquals(PAIR_NUM*2, marks.size());
Assert.assertEquals(PAIR_NUM * 2, marks.size());
PsiElement[] srcs = new PsiElement[PAIR_NUM];
PsiElement[] dsts = new PsiElement[PAIR_NUM];
for (int i=0; i<PAIR_NUM; i+=1) {
PsiElement dst = marks.get("<dst" + String.valueOf(i+1) +">").getParent(); // ident -> target expr
assertTrue(dst instanceof PyTargetExpression);
Assert.assertTrue(dst instanceof PyTargetExpression);
dsts[i] = dst;
PsiElement src = marks.get("<src" + String.valueOf(i+1) +">").getParent(); // ident -> target expr
assertTrue(src instanceof PyExpression);
Assert.assertTrue(src instanceof PyExpression);
srcs[i] = src;
}
PyAssignmentStatement stmt = (PyAssignmentStatement)srcs[0].getParent().getParent(); // tuple expr -> assignment
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(PAIR_NUM, mapping.size());
Assert.assertEquals(PAIR_NUM, mapping.size());
for (int i=0; i<PAIR_NUM; i+=1) {
Pair<PyExpression, PyExpression> pair = mapping.get(i);
assertEquals(dsts[i], pair.getFirst());
assertEquals(srcs[i], pair.getSecond());
Assert.assertEquals(dsts[i], pair.getFirst());
Assert.assertEquals(srcs[i], pair.getSecond());
}
}
public void testParenthesizedTuple() throws Exception { //PY-2648
Map<String, PsiElement> marks = loadTest();
final int PAIR_NUM = 2;
assertEquals(PAIR_NUM*2, marks.size());
Assert.assertEquals(PAIR_NUM * 2, marks.size());
PsiElement[] srcs = new PsiElement[PAIR_NUM];
PsiElement[] dsts = new PsiElement[PAIR_NUM];
for (int i=0; i<PAIR_NUM; i+=1) {
PsiElement dst = marks.get("<dst" + String.valueOf(i + 1) + ">").getParent(); // ident -> target expr
assertTrue(dst instanceof PyTargetExpression);
Assert.assertTrue(dst instanceof PyTargetExpression);
dsts[i] = dst;
PsiElement src = marks.get("<src" + String.valueOf(i + 1) + ">").getParent(); // ident -> target expr
assertTrue(src instanceof PyExpression);
Assert.assertTrue(src instanceof PyExpression);
srcs[i] = src;
}
PyAssignmentStatement stmt = (PyAssignmentStatement)srcs[0].getParent().getParent().getParent(); // tuple expr -> assignment
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(PAIR_NUM, mapping.size());
Assert.assertEquals(PAIR_NUM, mapping.size());
for (int i=0; i<PAIR_NUM; i+=1) {
Pair<PyExpression, PyExpression> pair = mapping.get(i);
assertEquals(dsts[i], pair.getFirst());
assertEquals(srcs[i], pair.getSecond());
Assert.assertEquals(dsts[i], pair.getFirst());
Assert.assertEquals(srcs[i], pair.getSecond());
}
}
public void testTuplePack() throws Exception {
Map<String, PsiElement> marks = loadTest();
final int SRC_NUM = 2;
assertEquals(SRC_NUM+1, marks.size());
Assert.assertEquals(SRC_NUM + 1, marks.size());
PsiElement[] srcs = new PsiElement[SRC_NUM];
for (int i=0; i<SRC_NUM; i+=1) {
PsiElement src = marks.get("<src" + String.valueOf(i+1) +">").getParent(); // ident -> target expr
assertTrue(src instanceof PyExpression);
Assert.assertTrue(src instanceof PyExpression);
srcs[i] = src;
}
PsiElement dst = marks.get("<dst>").getParent(); // ident -> target expr
PyAssignmentStatement stmt = (PyAssignmentStatement)dst.getParent();
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(1, mapping.size());
Assert.assertEquals(1, mapping.size());
Pair<PyExpression, PyExpression> pair = mapping.get(0);
assertEquals(dst, pair.getFirst());
Assert.assertEquals(dst, pair.getFirst());
for (PsiElement src : srcs) {
assertEquals(src.getParent(), pair.getSecond()); // numeric expr -> tuple
Assert.assertEquals(src.getParent(), pair.getSecond()); // numeric expr -> tuple
}
}
@@ -161,28 +162,28 @@ public class PyAssignmentMappingTest extends LightMarkedTestCase {
public void testTupleUnpack() throws Exception {
Map<String, PsiElement> marks = loadTest();
final int DST_NUM = 2;
assertEquals(DST_NUM+3, marks.size());
Assert.assertEquals(DST_NUM + 3, marks.size());
PsiElement[] dsts = new PsiElement[DST_NUM];
for (int i=0; i<DST_NUM; i+=1) {
PsiElement dst = marks.get("<dst" + String.valueOf(i+1) +">").getParent(); // ident -> target expr
assertTrue(dst instanceof PyTargetExpression);
Assert.assertTrue(dst instanceof PyTargetExpression);
dsts[i] = dst;
}
PsiElement[] srcs = new PsiElement[DST_NUM];
for (int i=0; i<DST_NUM; i+=1) {
PsiElement src = marks.get("<src" + String.valueOf(i+1) +">").getParent().getParent().getParent(); // ident -> target expr
assertTrue(src instanceof PyExpression);
Assert.assertTrue(src instanceof PyExpression);
srcs[i] = src;
}
PsiElement src = marks.get("<src>").getParent(); // ident -> target expr
PyAssignmentStatement stmt = (PyAssignmentStatement)src.getParent().getParent();
List<Pair<PyExpression, PyExpression>> mapping = stmt.getTargetsToValuesMapping();
assertEquals(DST_NUM, mapping.size());
Assert.assertEquals(DST_NUM, mapping.size());
for (int i=0; i<DST_NUM; i+=1) {
Pair<PyExpression, PyExpression> pair = mapping.get(i);
assertEquals(dsts[i], pair.getFirst());
assertEquals(srcs[i].getText(), pair.getSecond().getText());
Assert.assertEquals(dsts[i], pair.getFirst());
Assert.assertEquals(srcs[i].getText(), pair.getSecond().getText());
}
}
}
@@ -8,10 +8,12 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.jetbrains.python.codeInsight.controlflow.ControlFlowCache;
import com.jetbrains.python.codeInsight.controlflow.ScopeOwner;
import com.jetbrains.python.fixtures.LightMarkedTestCase;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.psi.LanguageLevel;
import com.jetbrains.python.psi.PyClass;
import com.jetbrains.python.psi.PyFile;
import com.jetbrains.python.psi.PyFunction;
import junit.framework.Assert;
import java.io.IOException;
@@ -236,10 +238,10 @@ public class PyControlFlowBuilderTest extends LightMarkedTestCase {
for (Instruction instruction : instructions) {
buffer.append(instruction).append("\n");
}
final VirtualFile vFile = getVirtualFileByName(fullPath);
final VirtualFile vFile = PyTestCase.getVirtualFileByName(fullPath);
try {
final String fileText = StringUtil.convertLineSeparators(VfsUtil.loadText(vFile), "\n");
assertEquals(fileText.trim(), buffer.toString().trim());
Assert.assertEquals(fileText.trim(), buffer.toString().trim());
}
catch (IOException e) {
throw new RuntimeException(e);
@@ -1,6 +1,5 @@
package com.jetbrains.python.quickFixes;
package com.jetbrains.python;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.inspections.PyMethodMayBeStaticInspection;
/**
@@ -1,6 +1,5 @@
package com.jetbrains.python.quickFixes;
package com.jetbrains.python;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.inspections.PyMethodMayBeStaticInspection;
/**
@@ -1,7 +1,6 @@
package com.jetbrains.python.quickFixes;
package com.jetbrains.python;
import com.intellij.testFramework.TestDataPath;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.inspections.PyAttributeOutsideInitInspection;
/**
@@ -1,20 +1,14 @@
package com.jetbrains.python;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileFilter;
import com.intellij.psi.*;
import com.intellij.psi.impl.PsiManagerImpl;
import com.jetbrains.cython.psi.CythonFunction;
import com.jetbrains.cython.psi.CythonVariable;
import com.jetbrains.python.fixtures.PyResolveTestCase;
import com.jetbrains.python.fixtures.PyMultiFileResolveTestCase;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.psi.*;
/**
* @author yole
*/
public class PyMultiFileResolveTest extends PyResolveTestCase {
protected String myTestFileName;
public class PyMultiFileResolveTest extends PyMultiFileResolveTestCase {
private static void checkInitPyDir(PsiElement elt, String dirname) {
assertTrue(elt instanceof PyFile);
@@ -266,96 +260,6 @@ public class PyMultiFileResolveTest extends PyResolveTestCase {
myTestFileName = null;
}
}
public void testCythonFromModuleCImport() {
assertResolvesTo(CythonFunction.class, "foo");
}
public void testCythonFromModuleCImportAs() {
assertResolvesTo(CythonFunction.class, "foo");
}
public void testCythonFromModuleCImportStar() {
assertResolvesTo(CythonFunction.class, "foo");
}
public void testCythonFromPackageCImportAttribute() {
assertResolvesTo(CythonFunction.class, "foo");
}
public void testCythonFromPackageCImportModule() {
assertResolvesTo(PyFile.class, "m1.pxd");
}
public void testCythonFromPackageCImportPackage() {
assertResolvesTo(PyFile.class, "__init__.pxd");
}
public void testCythonCImportAttribute() {
assertResolvesTo(PyFile.class, "m1.pxd");
}
public void testCythonCImportPackage() {
assertResolvesTo(PyFile.class, "__init__.pxd");
}
public void testCythonCImportModule() {
assertResolvesTo(PyFile.class, "m1.pxd");
}
public void testCythonImplicitCImport() {
assertResolvesTo(CythonFunction.class, "foo");
}
public void testCythonInclude() {
assertResolvesTo(CythonFunction.class, "foo");
}
// PY-4843
public void testCythonFromSubmoduleAbsoluteCImport() {
prepareTestDirectory();
final VirtualFile file = myFixture.findFileInTempDir("p1/m2.pyx");
assertNotNull("Could not find test file", file);
final PsiFile psiFile = myFixture.getPsiManager().findFile(file);
PsiElement element = doResolve(psiFile);
assertInstanceOf(element, CythonVariable.class);
assertEquals("foo", ((PsiNamedElement)element).getName());
}
// PY-4844
public void testCythonFromModuleCImportExternStar() {
assertResolvesTo(CythonVariable.class, "foo");
}
public void testCythonCdefClassForwardInclude() {
final PyTargetExpression target = assertResolvesTo(PyTargetExpression.class, "bar");
final PyExpression value = target.findAssignedValue();
assertNotNull(value);
final PsiReference ref = value.getReference();
assertNotNull(ref);
final PsiElement field = ref.resolve();
assertNotNull(field);
assertInstanceOf(field, CythonVariable.class);
assertEquals("foo", ((PsiNamedElement)field).getName());
}
public void testCythonImportFromPython() {
assertResolvesTo(CythonFunction.class, "foo");
}
// PY-4946
public void testCythonCdefClassAttributeInDefinition() {
final PyTargetExpression target = assertResolvesTo(PyTargetExpression.class, "foo");
final PyExpression value = target.findAssignedValue();
assertNotNull(value);
final PsiReference ref = value.getReference();
assertNotNull(ref);
final PsiElement field = ref.resolve();
assertNotNull(field);
assertInstanceOf(field, CythonVariable.class);
assertEquals("x", ((PsiNamedElement)field).getName());
}
// PY-2813
public void testFromNamespacePackageImport() {
assertResolvesTo(PyFunction.class, "foo");
@@ -441,70 +345,12 @@ public class PyMultiFileResolveTest extends PyResolveTestCase {
public void testFromPackageModuleImportElementNamedAsModule() {
assertResolvesTo(PyFunction.class, "foo");
final PsiManager psiManager = myFixture.getPsiManager();
assertNotParsed((PyFile)psiManager.findFile(myFixture.findFileInTempDir("p1/__init__.py")));
assertNotParsed((PyFile)psiManager.findFile(myFixture.findFileInTempDir("p1/foo.py")));
PyTestCase.assertNotParsed((PyFile)psiManager.findFile(myFixture.findFileInTempDir("p1/__init__.py")));
PyTestCase.assertNotParsed((PyFile)psiManager.findFile(myFixture.findFileInTempDir("p1/foo.py")));
}
// PY-10819
public void testFromPackageModuleImportStarElementNamedAsModule() {
assertResolvesTo(PyFunction.class, "foo");
}
private void prepareTestDirectory() {
final String testName = getTestName(true);
myFixture.copyDirectoryToProject(testName, "");
PsiDocumentManager.getInstance(myFixture.getProject()).commitAllDocuments();
}
private PsiFile prepareFile() {
prepareTestDirectory();
VirtualFile sourceFile = null;
for (String ext : new String[]{".py", ".pyx"}) {
final String fileName = myTestFileName != null ? myTestFileName : getTestName(false) + ext;
sourceFile = myFixture.findFileInTempDir(fileName);
if (sourceFile != null) {
break;
}
}
assertNotNull("Could not find test file", sourceFile);
return myFixture.getPsiManager().findFile(sourceFile);
}
@Override
protected String getTestDataPath() {
return PythonTestUtil.getTestDataPath() + "/resolve/multiFile/";
}
protected PsiElement doResolve(PsiFile psiFile) {
final PsiPolyVariantReference ref = findReferenceByMarker(psiFile);
final PsiManagerImpl psiManager = (PsiManagerImpl)myFixture.getPsiManager();
psiManager.setAssertOnFileLoadingFilter(new VirtualFileFilter() {
@Override
public boolean accept(VirtualFile file) {
FileType fileType = file.getFileType();
return fileType == PythonFileType.INSTANCE;
}
});
try {
final ResolveResult[] resolveResults = ref.multiResolve(false);
if (resolveResults.length == 0) {
return null;
}
return resolveResults[0].isValidResult() ? resolveResults[0].getElement() : null;
}
finally {
psiManager.setAssertOnFileLoadingFilter(VirtualFileFilter.NONE);
}
}
@Override
protected PsiElement doResolve() {
return doResolve(prepareFile());
}
private ResolveResult[] doMultiResolve() {
PsiFile psiFile = prepareFile();
final PsiPolyVariantReference ref = findReferenceByMarker(psiFile);
return ref.multiResolve(false);
}
}
@@ -15,6 +15,7 @@ import com.intellij.util.containers.HashSet;
import com.jetbrains.python.fixtures.LightMarkedTestCase;
import com.jetbrains.python.psi.CallArgumentsMapping;
import com.jetbrains.python.psi.PyArgumentList;
import junit.framework.Assert;
import org.jetbrains.annotations.NotNull;
import java.awt.*;
@@ -35,7 +36,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase {
protected Map<String, PsiElement> loadTest(int expected_marks) {
Map<String, PsiElement> marks = loadTest();
assertEquals("Test data sanity", marks.size(), expected_marks);
Assert.assertEquals("Test data sanity", marks.size(), expected_marks);
return marks;
}
@@ -402,7 +403,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase {
final PyArgumentList parameterOwner = handler.findElementForParameterInfo(collector);
collector.setParameterOwner(parameterOwner); // finds arglist, sets items to show
if (collector.getParameterOwner() != null) {
assertEquals("Collected one analysis result", 1, collector.myItems.length);
Assert.assertEquals("Collected one analysis result", 1, collector.myItems.length);
handler.updateParameterInfo((PyArgumentList)collector.getParameterOwner(), collector); // moves offset to correct parameter
handler.updateUI((CallArgumentsMapping)collector.getItemsToShow()[0], collector); // sets hint text and flags
}
@@ -472,7 +473,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase {
@Override
public void setParameterOwner(PsiElement o) {
assertTrue("Found element is a python arglist", o == null || o instanceof PyArgumentList);
Assert.assertTrue("Found element is a python arglist", o == null || o instanceof PyArgumentList);
myParamOwner = (PyArgumentList)o;
}
@@ -557,7 +558,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase {
* @param disabled expected disabled substrings of hint
*/
public void check(String text, String[] highlighted, String[] disabled) {
assertEquals("Signature", text, StringUtil.join(myTexts, ""));
Assert.assertEquals("Signature", text, StringUtil.join(myTexts, ""));
StringBuilder wrongs = new StringBuilder();
// see if highlighted matches
Set<String> highlightSet = new HashSet<String>();
@@ -586,7 +587,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase {
}
}
//
if (wrongs.length() > 0) fail(wrongs.toString());
if (wrongs.length() > 0) Assert.fail(wrongs.toString());
}
public void check(String text, String[] highlighted) {
@@ -594,7 +595,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase {
}
public void assertNotFound() {
assertNull(myParamOwner);
Assert.assertNull(myParamOwner);
}
}
}
@@ -7,8 +7,10 @@ import com.intellij.psi.PsiElement;
import com.intellij.testFramework.TestDataFile;
import com.jetbrains.python.documentation.PythonDocumentationProvider;
import com.jetbrains.python.fixtures.LightMarkedTestCase;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.PythonLanguageLevelPusher;
import junit.framework.Assert;
import java.io.IOException;
import java.util.Map;
@@ -27,14 +29,14 @@ public class PyQuickDocTest extends LightMarkedTestCase {
}
private void checkByHTML(String text) {
assertNotNull(text);
Assert.assertNotNull(text);
checkByHTML(text, "/quickdoc/" + getTestName(false) + ".html");
}
private void checkByHTML(String text, @TestDataFile String filePath) {
final String fullPath = getTestDataPath() + filePath;
final VirtualFile vFile = getVirtualFileByName(fullPath);
assertNotNull("file " + fullPath + " not found", vFile);
final VirtualFile vFile = PyTestCase.getVirtualFileByName(fullPath);
Assert.assertNotNull("file " + fullPath + " not found", vFile);
String loadedText;
try {
@@ -44,7 +46,7 @@ public class PyQuickDocTest extends LightMarkedTestCase {
throw new RuntimeException(e);
}
String fileText = StringUtil.convertLineSeparators(loadedText, "\n");
assertEquals(fileText.trim(), text.trim());
Assert.assertEquals(fileText.trim(), text.trim());
}
@Override
@@ -54,16 +56,16 @@ public class PyQuickDocTest extends LightMarkedTestCase {
private void checkRefDocPair() {
Map<String, PsiElement> marks = loadTest();
assertEquals(2, marks.size());
Assert.assertEquals(2, marks.size());
final PsiElement original_elt = marks.get("<the_doc>");
PsiElement doc_elt = original_elt.getParent(); // ident -> expr
assertTrue(doc_elt instanceof PyStringLiteralExpression);
Assert.assertTrue(doc_elt instanceof PyStringLiteralExpression);
String doc_text = ((PyStringLiteralExpression)doc_elt).getStringValue();
assertNotNull(doc_text);
Assert.assertNotNull(doc_text);
PsiElement ref_elt = marks.get("<the_ref>").getParent(); // ident -> expr
final PyDocStringOwner doc_owner = (PyDocStringOwner)((PyReferenceExpression)ref_elt).getReference().resolve();
assertEquals(doc_elt, doc_owner.getDocStringExpression());
Assert.assertEquals(doc_elt, doc_owner.getDocStringExpression());
checkByHTML(myProvider.generateDoc(doc_owner, original_elt));
}
@@ -127,15 +129,15 @@ public class PyQuickDocTest extends LightMarkedTestCase {
public void testInheritedMethod() {
Map<String, PsiElement> marks = loadTest();
assertEquals(2, marks.size());
Assert.assertEquals(2, marks.size());
PsiElement doc_elt = marks.get("<the_doc>").getParent(); // ident -> expr
assertTrue(doc_elt instanceof PyStringLiteralExpression);
Assert.assertTrue(doc_elt instanceof PyStringLiteralExpression);
String doc_text = ((PyStringLiteralExpression)doc_elt).getStringValue();
assertNotNull(doc_text);
Assert.assertNotNull(doc_text);
PsiElement ref_elt = marks.get("<the_ref>").getParent(); // ident -> expr
final PyDocStringOwner doc_owner = (PyDocStringOwner)((PyReferenceExpression)ref_elt).getReference().resolve();
assertNull(doc_owner.getDocStringExpression()); // no direct doc!
Assert.assertNull(doc_owner.getDocStringExpression()); // no direct doc!
checkByHTML(myProvider.generateDoc(doc_owner, null));
}
@@ -1,4 +1,4 @@
package com.jetbrains.python.quickFixes;
package com.jetbrains.python;
import com.intellij.codeInsight.intention.IntentionAction;
import com.jetbrains.python.PythonTestUtil;
@@ -5,6 +5,7 @@ import com.intellij.psi.PsiPolyVariantReference;
import com.intellij.psi.PsiReference;
import com.intellij.psi.ResolveResult;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.testFramework.UsefulTestCase;
import com.jetbrains.python.codeInsight.controlflow.ScopeOwner;
import com.jetbrains.python.codeInsight.dataflow.scope.ScopeUtil;
import com.jetbrains.python.fixtures.PyResolveTestCase;
@@ -12,6 +13,7 @@ import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import com.jetbrains.python.psi.impl.PythonLanguageLevelPusher;
import com.jetbrains.python.psi.resolve.ImportedResolveResult;
import junit.framework.Assert;
public class PyResolveTest extends PyResolveTestCase {
@Override
@@ -22,7 +24,7 @@ public class PyResolveTest extends PyResolveTestCase {
private PsiReference findReferenceByMarker() {
myFixture.configureByFile("resolve/" + getTestName(false) + ".py");
return findReferenceByMarker(myFixture.getFile());
return PyResolveTestCase.findReferenceByMarker(myFixture.getFile());
}
protected PsiElement resolve() {
@@ -33,7 +35,7 @@ public class PyResolveTest extends PyResolveTestCase {
private ResolveResult[] multiResolve() {
PsiReference ref = findReferenceByMarker();
assertTrue(ref instanceof PsiPolyVariantReference);
Assert.assertTrue(ref instanceof PsiPolyVariantReference);
return ((PsiPolyVariantReference)ref).multiResolve(false);
}
@@ -43,227 +45,227 @@ public class PyResolveTest extends PyResolveTestCase {
public void testFunc() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyFunction);
Assert.assertTrue(targetElement instanceof PyFunction);
}
public void testToConstructor() {
PsiElement target = resolve();
assertTrue(target instanceof PyFunction);
assertEquals(PyNames.INIT, ((PyFunction)target).getName());
Assert.assertTrue(target instanceof PyFunction);
Assert.assertEquals(PyNames.INIT, ((PyFunction)target).getName());
}
public void testToConstructorInherited() {
ResolveResult[] targets = multiResolve();
assertEquals(2, targets.length); // to class, to init
Assert.assertEquals(2, targets.length); // to class, to init
PsiElement elt;
// class
elt = targets[0].getElement();
assertTrue(elt instanceof PyClass);
assertEquals("Bar", ((PyClass)elt).getName());
Assert.assertTrue(elt instanceof PyClass);
Assert.assertEquals("Bar", ((PyClass)elt).getName());
// init
elt = targets[1].getElement();
assertTrue(elt instanceof PyFunction);
Assert.assertTrue(elt instanceof PyFunction);
PyFunction fun = (PyFunction)elt;
assertEquals(PyNames.INIT, fun.getName());
Assert.assertEquals(PyNames.INIT, fun.getName());
PyClass cls = fun.getContainingClass();
assertNotNull(cls);
assertEquals("Foo", cls.getName());
Assert.assertNotNull(cls);
Assert.assertEquals("Foo", cls.getName());
}
// NOTE: maybe this test does not belong exactly here; still it's the best place currently.
public void testComplexCallee() {
PsiElement targetElement = resolve();
PyExpression assigned = ((PyAssignmentStatement)targetElement.getContext()).getAssignedValue();
assertTrue(assigned instanceof PyCallExpression);
Assert.assertTrue(assigned instanceof PyCallExpression);
PsiElement callee = ((PyCallExpression)assigned).getCallee();
assertTrue(callee instanceof PySubscriptionExpression);
Assert.assertTrue(callee instanceof PySubscriptionExpression);
}
public void testVar() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testDefaultInClass() {
PsiElement targetElement = resolve();
assertNotNull(targetElement);
assertTrue(targetElement instanceof PyTargetExpression);
assertEquals("FOO", ((PyTargetExpression)targetElement).getName());
Assert.assertNotNull(targetElement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertEquals("FOO", ((PyTargetExpression)targetElement).getName());
}
public void testQualifiedFunc() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyFunction);
Assert.assertTrue(targetElement instanceof PyFunction);
}
public void testQualifiedVar() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testQualifiedTarget() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testQualifiedFalseTarget() {
PsiElement targetElement = resolve();
assertNull(targetElement);
Assert.assertNull(targetElement);
}
public void testInnerFuncVar() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testTupleInComprh() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testForStatement() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testExceptClause() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testLookAhead() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testLookAheadCapped() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testTryExceptElse() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testGlobal() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
}
public void testGlobalDefinedLocally() {
final PsiElement element = resolve();
assertInstanceOf(element, PyTargetExpression.class);
UsefulTestCase.assertInstanceOf(element, PyTargetExpression.class);
final PsiElement parent = element.getParent();
assertInstanceOf(parent, PyAssignmentStatement.class);
UsefulTestCase.assertInstanceOf(parent, PyAssignmentStatement.class);
}
public void testLambda() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyNamedParameter);
Assert.assertTrue(targetElement instanceof PyNamedParameter);
}
public void testLambdaParameterOutside() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testSuperField() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testFieldInCondition() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testMultipleFields() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testClassPeerMembers() {
PsiElement target = resolve();
assertTrue(target instanceof PyFunction);
Assert.assertTrue(target instanceof PyFunction);
}
public void testTuple() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
}
public void testMultiTarget() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
}
public void testMultiTargetTuple() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertNotNull(PsiTreeUtil.getParentOfType(targetElement, PyAssignmentStatement.class)); // it's deep in a tuple
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertNotNull(PsiTreeUtil.getParentOfType(targetElement, PyAssignmentStatement.class)); // it's deep in a tuple
}
public void testWithStatement() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyWithItem);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyWithItem);
}
public void testTupleInExcept() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(PsiTreeUtil.getParentOfType(targetElement, PyExceptPart.class) != null);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(PsiTreeUtil.getParentOfType(targetElement, PyExceptPart.class) != null);
}
public void testDocStringClass() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyStringLiteralExpression);
assertEquals("Docstring of class Foo", ((PyStringLiteralExpression)targetElement).getStringValue());
Assert.assertTrue(targetElement instanceof PyStringLiteralExpression);
Assert.assertEquals("Docstring of class Foo", ((PyStringLiteralExpression)targetElement).getStringValue());
}
public void testDocStringInstance() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyStringLiteralExpression);
assertEquals("Docstring of class Foo", ((PyStringLiteralExpression)targetElement).getStringValue());
Assert.assertTrue(targetElement instanceof PyStringLiteralExpression);
Assert.assertEquals("Docstring of class Foo", ((PyStringLiteralExpression)targetElement).getStringValue());
}
public void testDocStringFunction() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyStringLiteralExpression);
assertEquals("Docstring of function bar", ((PyStringLiteralExpression)targetElement).getStringValue());
Assert.assertTrue(targetElement instanceof PyStringLiteralExpression);
Assert.assertEquals("Docstring of function bar", ((PyStringLiteralExpression)targetElement).getStringValue());
}
public void testDocStringInvalid() {
PsiElement targetElement = resolve();
assertNull(targetElement);
Assert.assertNull(targetElement);
}
public void testFieldNotInInit() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
}
public void testClassIsNotMemberOfItself() {
PsiElement targetElement = resolve();
assertNull(targetElement);
Assert.assertNull(targetElement);
}
public void testSuper() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyFunction);
assertEquals("A", ((PyFunction) targetElement).getContainingClass().getName());
Assert.assertTrue(targetElement instanceof PyFunction);
Assert.assertEquals("A", ((PyFunction)targetElement).getContainingClass().getName());
}
public void testSuperPy3k() { // PY-1330
PythonLanguageLevelPusher.setForcedLanguageLevel(myFixture.getProject(), LanguageLevel.PYTHON30);
try {
final PyFunction pyFunction = assertResolvesTo(PyFunction.class, "foo");
assertEquals("A", pyFunction.getContainingClass().getName());
Assert.assertEquals("A", pyFunction.getContainingClass().getName());
}
finally {
PythonLanguageLevelPusher.setForcedLanguageLevel(myFixture.getProject(), null);
@@ -272,81 +274,81 @@ public class PyResolveTest extends PyResolveTestCase {
public void testStackOverflow() {
PsiElement targetElement = resolve();
assertNull(targetElement);
Assert.assertNull(targetElement);
}
public void testProperty() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyFunction);
assertEquals("set_full_name", ((PyFunction)targetElement).getName());
Assert.assertTrue(targetElement instanceof PyFunction);
Assert.assertEquals("set_full_name", ((PyFunction)targetElement).getName());
}
public void testLambdaWithParens() { // PY-882
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyParameter);
Assert.assertTrue(targetElement instanceof PyParameter);
}
public void testTextBasedResolve() {
ResolveResult[] resolveResults = multiResolve();
assertEquals(1, resolveResults.length);
assertTrue(resolveResults [0].getElement() instanceof PyFunction);
Assert.assertEquals(1, resolveResults.length);
Assert.assertTrue(resolveResults[0].getElement() instanceof PyFunction);
}
public void testClassPrivateInClass() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
}
public void testClassPrivateInMethod() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
}
public void testClassPrivateInMethodNested() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
}
public void testClassPrivateInherited() {
PsiElement targetElement = resolve();
assertTrue(targetElement instanceof PyTargetExpression);
assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
Assert.assertTrue(targetElement instanceof PyTargetExpression);
Assert.assertTrue(targetElement.getParent() instanceof PyAssignmentStatement);
}
public void testClassPrivateOutsideClass() {
PsiElement targetElement = resolve();
assertNull(targetElement);
Assert.assertNull(targetElement);
}
public void testClassPrivateOutsideInstance() {
PsiElement targetElement = resolve();
assertNull(targetElement);
Assert.assertNull(targetElement);
}
public void testClassNameEqualsMethodName() {
PsiElement targetElement = resolve();
assertInstanceOf(targetElement, PyFunction.class);
UsefulTestCase.assertInstanceOf(targetElement, PyFunction.class);
}
public void testUnresolvedImport() {
final ResolveResult[] results = multiResolve();
assertEquals(1, results.length);
assertInstanceOf(results [0], ImportedResolveResult.class);
Assert.assertEquals(1, results.length);
UsefulTestCase.assertInstanceOf(results[0], ImportedResolveResult.class);
ImportedResolveResult result = (ImportedResolveResult) results [0];
assertNull(result.getElement());
Assert.assertNull(result.getElement());
}
public void testIsInstance() { // PY-1133
PsiElement targetElement = resolve();
assertInstanceOf(targetElement, PyNamedParameter.class);
UsefulTestCase.assertInstanceOf(targetElement, PyNamedParameter.class);
}
public void testListComprehension() { // PY-1143
PsiElement targetElement = resolve();
assertInstanceOf(targetElement, PyTargetExpression.class);
UsefulTestCase.assertInstanceOf(targetElement, PyTargetExpression.class);
}
public void testSuperMetaClass() {
@@ -359,18 +361,18 @@ public class PyResolveTest extends PyResolveTestCase {
public void testSuperTwoClasses() { // PY-2133
final PyFunction pyFunction = assertResolvesTo(PyFunction.class, "my_call");
assertEquals("Base2", pyFunction.getContainingClass().getName());
Assert.assertEquals("Base2", pyFunction.getContainingClass().getName());
}
public void testLambdaDefaultParameter() {
final PsiElement element = doResolve();
assertInstanceOf(element, PyTargetExpression.class);
assertTrue(element.getParent() instanceof PySetCompExpression);
UsefulTestCase.assertInstanceOf(element, PyTargetExpression.class);
Assert.assertTrue(element.getParent() instanceof PySetCompExpression);
}
public void testListAssignment() {
final PsiElement element = doResolve();
assertInstanceOf(element, PyTargetExpression.class);
UsefulTestCase.assertInstanceOf(element, PyTargetExpression.class);
}
public void testStarUnpacking() { // PY-1459
@@ -383,7 +385,7 @@ public class PyResolveTest extends PyResolveTestCase {
public void testBuiltinVsClassMember() { // PY-1654
final PyFunction pyFunction = assertResolvesTo(PyFunction.class, "eval");
assertEquals("__builtin__.py", pyFunction.getContainingFile().getName());
Assert.assertEquals("__builtin__.py", pyFunction.getContainingFile().getName());
}
public void testLambdaToClass() { // PY-2182
@@ -396,7 +398,7 @@ public class PyResolveTest extends PyResolveTestCase {
public void testModuleToBuiltins() {
final PsiElement element = doResolve();
assertNull(element);
Assert.assertNull(element);
}
public void testWithParentheses() {
@@ -413,7 +415,7 @@ public class PyResolveTest extends PyResolveTestCase {
public void testNoResolveIntoGenerator() { // PY-3030
PyTargetExpression expr = assertResolvesTo(PyTargetExpression.class, "foo");
assertEquals("foo = 1", expr.getParent().getText());
Assert.assertEquals("foo = 1", expr.getParent().getText());
}
public void testResolveInGenerator() {
@@ -438,9 +440,9 @@ public class PyResolveTest extends PyResolveTestCase {
public void testImplicitResolveInstanceAttribute() {
ResolveResult[] resolveResults = multiResolve();
assertEquals(1, resolveResults.length);
Assert.assertEquals(1, resolveResults.length);
final PsiElement psiElement = resolveResults[0].getElement();
assertTrue(psiElement instanceof PyTargetExpression && "xyzzy".equals(((PyTargetExpression)psiElement).getName()));
Assert.assertTrue(psiElement instanceof PyTargetExpression && "xyzzy".equals(((PyTargetExpression)psiElement).getName()));
}
public void testAttributeAssignedNearby() {
@@ -449,15 +451,15 @@ public class PyResolveTest extends PyResolveTestCase {
public void testPreviousTarget() {
PsiElement resolved = resolve();
assertInstanceOf(resolved, PyTargetExpression.class);
UsefulTestCase.assertInstanceOf(resolved, PyTargetExpression.class);
PyTargetExpression target = (PyTargetExpression)resolved;
PyExpression value = target.findAssignedValue();
assertInstanceOf(value, PyNumericLiteralExpression.class);
UsefulTestCase.assertInstanceOf(value, PyNumericLiteralExpression.class);
}
public void testMetaclass() {
final PyFunction function = assertResolvesTo(PyFunction.class, "getStore");
assertEquals("PluginMetaclass", function.getContainingClass().getName());
Assert.assertEquals("PluginMetaclass", function.getContainingClass().getName());
}
// PY-6083
@@ -492,9 +494,9 @@ public class PyResolveTest extends PyResolveTestCase {
final PsiReference ref = findReferenceByMarker();
final PsiElement source = ref.getElement();
final PsiElement target = ref.resolve();
assertNotNull(target);
assertTrue(source != target);
assertTrue(PyPsiUtils.isBefore(target, source));
Assert.assertNotNull(target);
Assert.assertTrue(source != target);
Assert.assertTrue(PyPsiUtils.isBefore(target, source));
}
// PY-7541
@@ -502,8 +504,8 @@ public class PyResolveTest extends PyResolveTestCase {
final PsiReference ref = findReferenceByMarker();
final PsiElement source = ref.getElement();
final PsiElement target = ref.resolve();
assertNotNull(target);
assertTrue(source == target);
Assert.assertNotNull(target);
Assert.assertTrue(source == target);
}
// PY-7970
@@ -516,12 +518,12 @@ public class PyResolveTest extends PyResolveTestCase {
final PsiReference ref = findReferenceByMarker();
final PsiElement source = ref.getElement();
final PsiElement resolved = ref.resolve();
assertInstanceOf(resolved, PyReferenceExpression.class);
assertNotSame(resolved, source);
UsefulTestCase.assertInstanceOf(resolved, PyReferenceExpression.class);
Assert.assertNotSame(resolved, source);
final PyReferenceExpression res = (PyReferenceExpression)resolved;
assertNotNull(res);
assertEquals("foo", res.getName());
assertInstanceOf(res.getParent(), PyAugAssignmentStatement.class);
Assert.assertNotNull(res);
Assert.assertEquals("foo", res.getName());
UsefulTestCase.assertInstanceOf(res.getParent(), PyAugAssignmentStatement.class);
}
public void testGeneratorShadowing() { // PY-8725
@@ -531,12 +533,12 @@ public class PyResolveTest extends PyResolveTestCase {
// PY-6805
public void testAttributeDefinedInNew() {
final PsiElement resolved = resolve();
assertInstanceOf(resolved, PyTargetExpression.class);
UsefulTestCase.assertInstanceOf(resolved, PyTargetExpression.class);
final PyTargetExpression target = (PyTargetExpression)resolved;
assertEquals("foo", target.getName());
Assert.assertEquals("foo", target.getName());
final ScopeOwner owner = ScopeUtil.getScopeOwner(target);
assertNotNull(owner);
assertInstanceOf(owner, PyFunction.class);
assertEquals("__new__", owner.getName());
Assert.assertNotNull(owner);
UsefulTestCase.assertInstanceOf(owner, PyFunction.class);
Assert.assertEquals("__new__", owner.getName());
}
}
@@ -3,6 +3,7 @@ package com.jetbrains.python;
import com.intellij.psi.PsiElement;
import com.jetbrains.python.fixtures.LightMarkedTestCase;
import com.jetbrains.python.psi.*;
import junit.framework.Assert;
import java.util.Map;
@@ -20,141 +21,141 @@ public class PyStatementPartsTest extends LightMarkedTestCase {
public void testIf() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(2, marks.size());
Assert.assertEquals(2, marks.size());
PsiElement elt = marks.get("<the_if>").getParent().getParent(); // if_keyword -> if_part -> if_stmt
assertTrue(elt instanceof PyIfStatement);
Assert.assertTrue(elt instanceof PyIfStatement);
PyIfStatement if_stmt = (PyIfStatement)elt;
PyIfPart if_part = if_stmt.getIfPart();
assertFalse(if_part.isElif());
Assert.assertFalse(if_part.isElif());
PyExpression if_cond = if_part.getCondition();
assertEquals(marks.get("<the_cond>").getParent(), if_cond);
Assert.assertEquals(marks.get("<the_cond>").getParent(), if_cond);
}
public void testIfElse() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(4, marks.size());
Assert.assertEquals(4, marks.size());
PsiElement elt = marks.get("<the_if>").getParent().getParent(); // if_keyword -> if_part -> if_stmt
assertTrue(elt instanceof PyIfStatement);
Assert.assertTrue(elt instanceof PyIfStatement);
PyIfStatement if_stmt = (PyIfStatement)elt;
PyIfPart if_part = if_stmt.getIfPart();
assertFalse(if_part.isElif());
Assert.assertFalse(if_part.isElif());
PyExpression if_cond = if_part.getCondition();
assertEquals(marks.get("<the_cond>").getParent(), if_cond);
Assert.assertEquals(marks.get("<the_cond>").getParent(), if_cond);
PyStatementList stmt_list = if_part.getStatementList();
assertNotNull(stmt_list);
assertEquals(marks.get("<then_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
Assert.assertNotNull(stmt_list);
Assert.assertEquals(marks.get("<then_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
PyElsePart else_part = if_stmt.getElsePart();
assertNotNull(else_part);
Assert.assertNotNull(else_part);
stmt_list = else_part.getStatementList();
assertNotNull(stmt_list);
assertEquals(marks.get("<else_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
Assert.assertNotNull(stmt_list);
Assert.assertEquals(marks.get("<else_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
}
public void testIfElifElse() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(6, marks.size());
Assert.assertEquals(6, marks.size());
PsiElement elt = marks.get("<the_if>").getParent().getParent(); // if_keyword -> if_part -> if_stmt
assertTrue(elt instanceof PyIfStatement);
Assert.assertTrue(elt instanceof PyIfStatement);
PyIfStatement if_stmt = (PyIfStatement)elt;
PyIfPart if_part = if_stmt.getIfPart();
assertFalse(if_part.isElif());
Assert.assertFalse(if_part.isElif());
PyExpression if_cond = if_part.getCondition();
assertEquals(marks.get("<the_cond>").getParent(), if_cond);
Assert.assertEquals(marks.get("<the_cond>").getParent(), if_cond);
PyStatementList stmt_list = if_part.getStatementList();
assertNotNull(stmt_list);
assertEquals(marks.get("<then_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
Assert.assertNotNull(stmt_list);
Assert.assertEquals(marks.get("<then_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
PyElsePart else_part = if_stmt.getElsePart();
assertNotNull(else_part);
Assert.assertNotNull(else_part);
stmt_list = else_part.getStatementList();
assertNotNull(stmt_list);
assertEquals(marks.get("<else_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
Assert.assertNotNull(stmt_list);
Assert.assertEquals(marks.get("<else_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
PyIfPart elif_part = if_stmt.getElifParts()[0];
assertTrue(elif_part.isElif());
Assert.assertTrue(elif_part.isElif());
if_cond = elif_part.getCondition();
assertEquals(marks.get("<elif_cond>").getParent(), if_cond);
Assert.assertEquals(marks.get("<elif_cond>").getParent(), if_cond);
stmt_list = elif_part.getStatementList();
assertNotNull(stmt_list);
assertEquals(marks.get("<elif_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
Assert.assertNotNull(stmt_list);
Assert.assertEquals(marks.get("<elif_stmt>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
}
public void testWhile() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(3, marks.size());
Assert.assertEquals(3, marks.size());
PsiElement elt = marks.get("<stmt>").getParent().getParent(); // keyword -> part -> stmt
assertTrue(elt instanceof PyWhileStatement);
Assert.assertTrue(elt instanceof PyWhileStatement);
PyWhileStatement while_stmt = (PyWhileStatement)elt;
PyWhilePart while_part = while_stmt.getWhilePart();
PyExpression cond = while_part.getCondition();
assertEquals(marks.get("<cond>").getParent(), cond);
Assert.assertEquals(marks.get("<cond>").getParent(), cond);
elt = marks.get("<else>").getParent(); // keyword -> part
assertTrue(elt instanceof PyElsePart);
assertEquals(while_stmt.getElsePart(), elt);
Assert.assertTrue(elt instanceof PyElsePart);
Assert.assertEquals(while_stmt.getElsePart(), elt);
}
public void testFor() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(4, marks.size());
Assert.assertEquals(4, marks.size());
PsiElement elt = marks.get("<stmt>").getParent().getParent(); // keyword -> part -> stmt
assertTrue(elt instanceof PyForStatement);
Assert.assertTrue(elt instanceof PyForStatement);
PyForStatement stmt = (PyForStatement)elt;
PyForPart for_part = stmt.getForPart();
PyExpression target = for_part.getTarget();
assertEquals(marks.get("<target>").getParent(), target); // ident -> expr
Assert.assertEquals(marks.get("<target>").getParent(), target); // ident -> expr
PyExpression source = for_part.getSource();
assertEquals(marks.get("<source>").getParent(), source); // ident -> expr
Assert.assertEquals(marks.get("<source>").getParent(), source); // ident -> expr
elt = marks.get("<else>").getParent(); // keyword -> part
assertTrue(elt instanceof PyElsePart);
assertEquals(stmt.getElsePart(), elt);
Assert.assertTrue(elt instanceof PyElsePart);
Assert.assertEquals(stmt.getElsePart(), elt);
}
public void testTry() throws Exception {
Map<String, PsiElement> marks = loadTest();
assertEquals(6, marks.size());
Assert.assertEquals(6, marks.size());
PsiElement elt = marks.get("<stmt>").getParent().getParent(); // keyword -> part -> stmt
assertTrue(elt instanceof PyTryExceptStatement);
Assert.assertTrue(elt instanceof PyTryExceptStatement);
PyTryExceptStatement stmt = (PyTryExceptStatement)elt;
PyTryPart try_part = stmt.getTryPart();
PyStatementList stmt_list = try_part.getStatementList();
assertNotNull(stmt_list);
assertEquals(marks.get("<body>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
Assert.assertNotNull(stmt_list);
Assert.assertEquals(marks.get("<body>").getParent().getParent(), stmt_list); // keyword -> stmt -> stmt_list
PyExceptPart exc_part = stmt.getExceptParts()[0];
assertEquals("ArithmeticError", exc_part.getExceptClass().getText());
assertEquals(marks.get("<ex1>").getParent(), exc_part);
Assert.assertEquals("ArithmeticError", exc_part.getExceptClass().getText());
Assert.assertEquals(marks.get("<ex1>").getParent(), exc_part);
exc_part = (PyExceptPart)marks.get("<ex2>").getParent(); // keyword -> part
assertEquals(stmt.getExceptParts()[1], exc_part);
assertNull(exc_part.getExceptClass());
Assert.assertEquals(stmt.getExceptParts()[1], exc_part);
Assert.assertNull(exc_part.getExceptClass());
elt = marks.get("<else>").getParent(); // keyword -> part
assertTrue(elt instanceof PyElsePart);
assertEquals(stmt.getElsePart(), elt);
Assert.assertTrue(elt instanceof PyElsePart);
Assert.assertEquals(stmt.getElsePart(), elt);
elt = marks.get("<finally>").getParent(); // keyword -> part
assertTrue(elt instanceof PyFinallyPart);
assertEquals(stmt.getFinallyPart(), elt);
Assert.assertTrue(elt instanceof PyFinallyPart);
Assert.assertEquals(stmt.getFinallyPart(), elt);
}
}
@@ -8,7 +8,7 @@ import com.jetbrains.python.lexer.PyStringLiteralLexer;
*/
public class PyStringLiteralLexerTest extends PyLexerTestCase {
public void testBackslashN() { // PY-1313
doLexerTest("u\"\\N{LATIN SMALL LETTER B}\"", new PyStringLiteralLexer(PyTokenTypes.SINGLE_QUOTED_UNICODE),
"Py:SINGLE_QUOTED_UNICODE", "VALID_STRING_ESCAPE_TOKEN", "Py:SINGLE_QUOTED_UNICODE");
PyLexerTestCase.doLexerTest("u\"\\N{LATIN SMALL LETTER B}\"", new PyStringLiteralLexer(PyTokenTypes.SINGLE_QUOTED_UNICODE),
"Py:SINGLE_QUOTED_UNICODE", "VALID_STRING_ESCAPE_TOKEN", "Py:SINGLE_QUOTED_UNICODE");
}
}
@@ -156,6 +156,6 @@ public class PythonHighlightingLexerTest extends PyLexerTestCase {
}
private static void doTest(LanguageLevel languageLevel, String text, String... expectedTokens) {
doLexerTest(text, new PythonHighlightingLexer(languageLevel), expectedTokens);
PyLexerTestCase.doLexerTest(text, new PythonHighlightingLexer(languageLevel), expectedTokens);
}
}
@@ -287,6 +287,6 @@ public class PythonLexerTest extends PyLexerTestCase {
}
private static void doTest(String text, String... expectedTokens) {
doLexerTest(text, new PythonIndentingLexer(), expectedTokens);
PyLexerTestCase.doLexerTest(text, new PythonIndentingLexer(), expectedTokens);
}
}
@@ -3,7 +3,6 @@ package com.jetbrains.python;
import com.intellij.psi.PsiFile;
import com.intellij.testFramework.ParsingTestCase;
import com.intellij.testFramework.TestDataPath;
import com.jetbrains.cython.CythonTokenSetContributor;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.psi.LanguageLevel;
@@ -24,7 +23,6 @@ public class PythonParsingTest extends ParsingTestCase {
PyTestCase.initPlatformPrefix();
registerExtensionPoint(PythonDialectsTokenSetContributor.EP_NAME, PythonDialectsTokenSetContributor.class);
registerExtension(PythonDialectsTokenSetContributor.EP_NAME, new PythonTokenSetContributor());
registerExtension(PythonDialectsTokenSetContributor.EP_NAME, new CythonTokenSetContributor());
}
@Override
@@ -5,6 +5,7 @@ import com.jetbrains.python.run.PythonConfigurationType;
import com.jetbrains.python.run.PythonRunConfiguration;
import com.jetbrains.python.testing.PythonTestConfigurationType;
import com.jetbrains.python.testing.unittest.PythonUnitTestRunConfiguration;
import junit.framework.Assert;
import java.util.List;
@@ -19,8 +20,8 @@ public class PythonRunConfigurationTest extends PyCommandLineTestCase {
PythonUnitTestRunConfiguration.class);
configuration.setScriptName(PY_SCRIPT);
final List<String> params = buildRunCommandLine(configuration);
assertTrue(params.get(0).endsWith("utrunner.py"));
assertTrue(params.get(1).equals(PY_SCRIPT));
Assert.assertTrue(params.get(0).endsWith("utrunner.py"));
Assert.assertTrue(params.get(1).equals(PY_SCRIPT));
}
public void testDebugCommandLine() {
@@ -28,7 +29,7 @@ public class PythonRunConfigurationTest extends PyCommandLineTestCase {
PythonRunConfiguration.class);
configuration.setScriptName(PY_SCRIPT);
final List<String> params = buildDebugCommandLine(configuration);
final int index = verifyPyDevDParameters(params);
assertEquals(PY_SCRIPT, params.get(index));
final int index = PyCommandLineTestCase.verifyPyDevDParameters(params);
Assert.assertEquals(PY_SCRIPT, params.get(index));
}
}
@@ -2,7 +2,6 @@ package com.jetbrains.python.fixtures;
import com.intellij.lexer.Lexer;
import com.intellij.testFramework.PlatformLiteFixture;
import com.jetbrains.cython.CythonTokenSetContributor;
import com.jetbrains.python.PythonDialectsTokenSetContributor;
import com.jetbrains.python.PythonTokenSetContributor;
@@ -16,7 +15,6 @@ public abstract class PyLexerTestCase extends PlatformLiteFixture {
PyTestCase.initPlatformPrefix();
registerExtensionPoint(PythonDialectsTokenSetContributor.EP_NAME, PythonDialectsTokenSetContributor.class);
registerExtension(PythonDialectsTokenSetContributor.EP_NAME, new PythonTokenSetContributor());
registerExtension(PythonDialectsTokenSetContributor.EP_NAME, new CythonTokenSetContributor());
}
public static void doLexerTest(String text, Lexer lexer, String... expectedTokens) {
@@ -0,0 +1,76 @@
package com.jetbrains.python.fixtures;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileFilter;
import com.intellij.psi.*;
import com.intellij.psi.impl.PsiManagerImpl;
import com.jetbrains.python.PythonFileType;
import com.jetbrains.python.PythonTestUtil;
import junit.framework.Assert;
/**
* @author yole
*/
public abstract class PyMultiFileResolveTestCase extends PyResolveTestCase {
protected String myTestFileName;
@Override
protected String getTestDataPath() {
return PythonTestUtil.getTestDataPath() + "/resolve/multiFile/";
}
protected PsiElement doResolve(PsiFile psiFile) {
final PsiPolyVariantReference ref = PyResolveTestCase.findReferenceByMarker(psiFile);
final PsiManagerImpl psiManager = (PsiManagerImpl)myFixture.getPsiManager();
psiManager.setAssertOnFileLoadingFilter(new VirtualFileFilter() {
@Override
public boolean accept(VirtualFile file) {
FileType fileType = file.getFileType();
return fileType == PythonFileType.INSTANCE;
}
});
try {
final ResolveResult[] resolveResults = ref.multiResolve(false);
if (resolveResults.length == 0) {
return null;
}
return resolveResults[0].isValidResult() ? resolveResults[0].getElement() : null;
}
finally {
psiManager.setAssertOnFileLoadingFilter(VirtualFileFilter.NONE);
}
}
protected void prepareTestDirectory() {
final String testName = getTestName(true);
myFixture.copyDirectoryToProject(testName, "");
PsiDocumentManager.getInstance(myFixture.getProject()).commitAllDocuments();
}
private PsiFile prepareFile() {
prepareTestDirectory();
VirtualFile sourceFile = null;
for (String ext : new String[]{".py", ".pyx"}) {
final String fileName = myTestFileName != null ? myTestFileName : getTestName(false) + ext;
sourceFile = myFixture.findFileInTempDir(fileName);
if (sourceFile != null) {
break;
}
}
Assert.assertNotNull("Could not find test file", sourceFile);
return myFixture.getPsiManager().findFile(sourceFile);
}
@Override
protected PsiElement doResolve() {
return doResolve(prepareFile());
}
protected ResolveResult[] doMultiResolve() {
PsiFile psiFile = prepareFile();
final PsiPolyVariantReference ref = PyResolveTestCase.findReferenceByMarker(psiFile);
return ref.multiResolve(false);
}
}
@@ -149,4 +149,8 @@ public abstract class PyTestCase extends UsefulTestCase {
public static void initPlatformPrefix() {
PlatformTestCase.initPlatformPrefix(UsefulTestCase.IDEA_MARKER_CLASS, PlatformUtils.PYCHARM_PREFIX);
}
public static String getHelpersPath() {
return new File(PathManager.getHomePath(), "python/community/helpers").getPath();
}
}
@@ -2,7 +2,6 @@ package com.jetbrains.python.testRunner;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.process.ProcessOutput;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.testFramework.LightPlatformTestCase;
import com.intellij.util.ArrayUtil;
@@ -67,12 +66,12 @@ public class PyDocTestRunnerTest extends LightPlatformTestCase {
}
private static String[] runUTRunner(String workDir, String... args) throws ExecutionException {
File helpersDir = new File(PathManager.getHomePath(), "python/helpers");
File utRunner = new File(helpersDir, "pycharm/docrunner.py");
String helpersPath = PyTestCase.getHelpersPath();
File utRunner = new File(helpersPath, "pycharm/docrunner.py");
List<String> allArgs = new ArrayList<String>();
allArgs.add(utRunner.getPath());
Collections.addAll(allArgs, args);
final ProcessOutput output = JythonUnitTestUtil.runJython(workDir, helpersDir.getPath(), ArrayUtil.toStringArray(allArgs));
final ProcessOutput output = JythonUnitTestUtil.runJython(workDir, helpersPath, ArrayUtil.toStringArray(allArgs));
assertEquals(output.getStderr(), 0, splitLines(output.getStderr()).length);
return splitLines(output.getStdout());
}
@@ -72,7 +72,7 @@ public class PyTestRunnerTest extends LightPlatformTestCase {
}
private static String[] runUTRunner(String workDir, String... args) throws ExecutionException {
File helpersDir = new File(PathManager.getHomePath(), "python/helpers");
File helpersDir = new File(PyTestCase.getHelpersPath());
File utRunner = new File(helpersDir, "pycharm/utrunner.py");
List<String> allArgs = new ArrayList<String>();
allArgs.add(utRunner.getPath());
@@ -10,6 +10,9 @@
<orderEntry type="module" module-name="testFramework" />
<orderEntry type="module" module-name="python-psi-api" scope="TEST" />
<orderEntry type="module" module-name="python-community" scope="TEST" />
<orderEntry type="module" module-name="xdebugger-api" scope="TEST" />
<orderEntry type="library" name="Guava" level="project" />
<orderEntry type="module" module-name="spellchecker" scope="TEST" />
</component>
</module>