This commit is contained in:
Ilya.Kazakevich
2014-11-28 17:59:22 +03:00
parent c5f4151bd8
commit 81a1dd2b8c
4 changed files with 34 additions and 5 deletions
@@ -1,7 +1,7 @@
# encoding: utf-8
# module SingleNameSpace.Some.Deep calls itself Deep
# from SingleNameSpace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
# by generator 1.136
# by generatorXXX
# no doc
# no imports
@@ -1,7 +1,7 @@
# encoding: utf-8
# module SingleNameSpace
# from SingleNameSpace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
# by generator 1.136
# by generator XXX
# no doc
# no imports
@@ -1,7 +1,7 @@
# encoding: utf-8
# module com.just.like.java calls itself java
# from PythonLibs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
# by generator 1.136
# by generator XXX
# no doc
# no imports
@@ -9,7 +9,10 @@ import com.intellij.openapi.progress.Task;
import com.intellij.openapi.progress.util.AbstractProgressIndicatorBase;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.io.StreamUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.util.ui.UIUtil;
import com.jetbrains.env.PyExecutionFixtureTestTask;
import com.jetbrains.python.PyBundle;
@@ -26,8 +29,12 @@ import org.jetbrains.annotations.Nullable;
import org.junit.Assert;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
/**
@@ -121,12 +128,34 @@ class SkeletonTestTask extends PyExecutionFixtureTestTask {
FileUtil.copy(skeletonFile, new File(myFixture.getTempDirPath(), skeletonFile.getName()));
if (myExpectedSkeletonFile != null) {
// TODO: Get rid of hardcoded skeleton version
myFixture.checkResultByFile(skeletonFile.getName(), myExpectedSkeletonFile, false);
final String actual = StreamUtil.readText(new FileInputStream(skeletonFile), Charset.defaultCharset());
final String skeletonText =
StreamUtil.readText(new FileInputStream(new File(getTestDataPath(), myExpectedSkeletonFile)), Charset.defaultCharset());
// TODO: Move to separate method ?
if (!Matchers.equalToIgnoringWhiteSpace(removeGeneratorVersion(skeletonText)).matches(removeGeneratorVersion(actual))) {
throw new FileComparisonFailure("asd", skeletonText, actual, skeletonFile.getAbsolutePath());
}
}
myGeneratedSkeleton = (PyFile)myFixture.configureByFile(skeletonFile.getName());
}
/**
* Removes strings that starts with "# by generator", because generator version may change
* @param textToClean text to remove strings from
* @return text after cleanup
*/
private static String removeGeneratorVersion(@NotNull final String textToClean) {
final List<String> strings = StringUtil.split(textToClean, "\n");
final Iterator<String> iterator = strings.iterator();
while (iterator.hasNext()) {
if (iterator.next().startsWith("# by generator")) {
iterator.remove();
}
}
return StringUtil.join(strings, "\n");
}
@Override
public Set<String> getTags() {