mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 11:50:54 +07:00
[pycharm] Fixed PY-54972.
The fix allows getTestSpec function to properly construct the testSpec for rerunning failed Django tests. Merge-request: IJ-MR-128262 Merged-by: Sergey Karpov <sergey.karpov@jetbrains.com> GitOrigin-RevId: 96f0fed93b347291d8dd49535a5417687d6d0a5b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ee35416f38
commit
da982277a1
@@ -8,15 +8,18 @@ import com.intellij.execution.configurations.RuntimeConfigurationWarning
|
||||
import com.intellij.execution.target.TargetEnvironmentRequest
|
||||
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.project.Project
|
||||
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.psi.PyClass
|
||||
import com.jetbrains.python.psi.PyFile
|
||||
import com.jetbrains.python.psi.PyFunction
|
||||
import com.jetbrains.python.run.AbstractPythonRunConfiguration
|
||||
import java.nio.file.Path
|
||||
|
||||
/**
|
||||
* Parent of all test configurations
|
||||
@@ -66,11 +69,15 @@ protected constructor(project: Project, factory: ConfigurationFactory, private v
|
||||
pyClass = location.fixedClass
|
||||
}
|
||||
val pyFunction = PsiTreeUtil.getParentOfType(element, PyFunction::class.java, false)
|
||||
val virtualFile = location.virtualFile
|
||||
return virtualFile?.canonicalPath?.let { localPath ->
|
||||
val targetPath = targetPath(Path.of(localPath))
|
||||
(listOf(targetPath) + listOfNotNull(pyClass?.name, pyFunction?.name).map(::constant))
|
||||
.joinToStringFunction(separator = TEST_NAME_PARTS_SPLITTER)
|
||||
val virtualFile = location.virtualFile ?: return null
|
||||
val testSpec = ReadAction.compute<String?, IllegalStateException> {
|
||||
val pythonFile = PsiManager.getInstance(project).findFile(virtualFile) as? PyFile ?: return@compute null
|
||||
val qName = pythonFile.getQName() ?: return@compute null
|
||||
(listOf(qName) + listOfNotNull(pyClass?.name, pyFunction?.name)).joinToString(".")
|
||||
} ?: return null
|
||||
|
||||
return TargetEnvironmentFunction {
|
||||
testSpec
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user