PY-82377 "No Django runner found in the selected interpreter" false positive for Django test run configurations

Merge-request: IJ-MR-172042
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit 9e764bc9d84d67e68dcd09519cc6955062d17697)

IJ-MR-172042

GitOrigin-RevId: 8d9e1876baf9c05ecae62984b2c82eaafc15a57f
This commit is contained in:
Egor Eliseev
2025-08-11 16:17:00 +00:00
committed by intellij-monorepo-bot
parent 4aff3ed154
commit aa7aecb630

View File

@@ -10,13 +10,14 @@ import com.intellij.execution.target.value.*
import com.intellij.execution.testframework.AbstractTestProxy
import com.intellij.openapi.application.ReadAction
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.progress.runBlockingCancellable
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiManager
import com.intellij.psi.util.PsiTreeUtil
import com.jetbrains.python.PyBundle
import com.jetbrains.python.extensions.getQName
import com.jetbrains.python.packaging.PyPackageManager
import com.jetbrains.python.packaging.management.PythonPackageManager
import com.jetbrains.python.psi.PyClass
import com.jetbrains.python.psi.PyFile
import com.jetbrains.python.psi.PyFunction
@@ -121,7 +122,9 @@ protected constructor(project: Project, factory: ConfigurationFactory, private v
return false
}
val requiredPackage = this.requiredPackage ?: return true // Installed by default
return PyPackageManager.getInstance(sdk).packages?.firstOrNull { it.name == requiredPackage } != null
return runBlockingCancellable {
PythonPackageManager.forSdk(project, sdk).listInstalledPackages().find { it -> it.presentableName == requiredPackage } != null
}
}