Python: kill conda in tests.

Conda might be frozen, but that is not a reason to break the whole suite

GitOrigin-RevId: 491b58621ddf01ffa15353ee3d19056d98df549e
This commit is contained in:
Ilya.Kazakevich
2025-07-01 20:55:53 +00:00
committed by intellij-monorepo-bot
parent 3eadc38e05
commit 0055748341
2 changed files with 15 additions and 2 deletions
@@ -4,13 +4,16 @@ import com.intellij.execution.processTools.getResultStdout
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.python.community.testFramework.testEnv.PythonType
import com.intellij.util.io.awaitExit
import com.jetbrains.python.PythonBinary
import com.jetbrains.python.getOrThrow
import com.jetbrains.python.packaging.PyCondaPackageService
import com.jetbrains.python.packaging.findCondaExecutableRelativeToEnv
import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv
import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import org.jetbrains.annotations.ApiStatus.Internal
import java.nio.file.Path
@@ -39,7 +42,17 @@ data object TypeConda : PythonType<PyCondaEnv>("conda") {
for (arg in arrayOf("--name", "-p")) {
val args = arrayOf(condaPath.toString(), "remove", arg, envName, "--all", "-y")
Runtime.getRuntime().exec(args).getResultStdout().getOrElse {
val exec = Runtime.getRuntime().exec(args)
launch {
try {
exec.awaitExit()
}
catch (e: CancellationException) {
exec.destroyForcibly()
throw e
}
}
exec.getResultStdout().getOrElse {
logger<TypeConda>().warn(it)
}
}