fix PyBehaveTest: tearDown in a write-safe context

This commit is contained in:
peter
2017-09-19 09:54:09 +02:00
parent 473db2c5a7
commit ba8ef02f70
+16 -22
View File
@@ -47,6 +47,7 @@ import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.io.FileUtilRt;
import com.intellij.testFramework.EdtTestUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.xdebugger.XDebuggerTestUtil;
import com.jetbrains.env.PyExecutionFixtureTestTask;
@@ -136,30 +137,23 @@ public abstract class PyUnitTestTask extends PyExecutionFixtureTestTask {
@Override
public void tearDown() {
UIUtil.invokeAndWaitIfNeeded((Runnable)() -> {
try {
if (mySetUp) {
if (myConsoleView != null) {
Disposer.dispose(myConsoleView);
myConsoleView = null;
}
if (myDescriptor != null) {
Disposer.dispose(myDescriptor);
myDescriptor = null;
}
PyUnitTestTask.super.tearDown();
mySetUp = false;
EdtTestUtil.runInEdtAndWait(() -> {
if (mySetUp) {
if (myConsoleView != null) {
Disposer.dispose(myConsoleView);
myConsoleView = null;
}
if (myDescriptor != null) {
Disposer.dispose(myDescriptor);
myDescriptor = null;
}
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
);
super.tearDown();
mySetUp = false;
}
});
}
@Override