PY-76806 Missing Docker container settings in Run/Debug configurations

Add test


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

(cherry picked from commit 3b4ae8c55909518b01312cf5ece964b44a2b6110)

IJ-MR-147678

GitOrigin-RevId: 40c75203a5246704c32f06542fbb6418b902dbe9
This commit is contained in:
Egor Eliseev
2024-10-24 19:24:06 +00:00
committed by intellij-monorepo-bot
parent 155624f4f5
commit 4016ee39b1

View File

@@ -3,6 +3,8 @@ package com.jetbrains.python.run
import com.intellij.execution.target.RunConfigurationTargetEnvironmentAdjuster
import com.intellij.openapi.options.SettingsEditor
import com.intellij.openapi.projectRoots.Sdk
import org.jetbrains.annotations.TestOnly
import java.util.*
class PyRunConfigurationTargetOptions : PyRunConfigurationEditorExtension {
@@ -10,6 +12,10 @@ class PyRunConfigurationTargetOptions : PyRunConfigurationEditorExtension {
override fun accepts(configuration: AbstractPythonRunConfiguration<out AbstractPythonRunConfiguration<*>>): PyRunConfigurationEditorFactory? {
val sdk = configuration.sdk ?: return null
return acceptsForSdk(sdk)
}
private fun acceptsForSdk(sdk: Sdk): PyRunConfigurationEditorFactory? {
val adjuster = RunConfigurationTargetEnvironmentAdjuster.Factory.findTargetEnvironmentRequestAdjuster(sdk) ?: return null
return if (adjuster.providesAdditionalRunConfigurationUI()) {
factoriesCache.computeIfAbsent(adjuster) { RunConfigurationsTargetOptionsFactory(adjuster) }
@@ -19,6 +25,9 @@ class PyRunConfigurationTargetOptions : PyRunConfigurationEditorExtension {
}
}
@TestOnly
fun accepts(sdk: Sdk): PyRunConfigurationEditorFactory? = acceptsForSdk(sdk)
private class RunConfigurationsTargetOptionsFactory(private val adjuster: RunConfigurationTargetEnvironmentAdjuster) : PyRunConfigurationEditorFactory {
override fun createEditor(configuration: AbstractPythonRunConfiguration<*>): SettingsEditor<AbstractPythonRunConfiguration<*>> {
val adjuster = RunConfigurationTargetEnvironmentAdjuster.Factory.findTargetEnvironmentRequestAdjuster(configuration.sdk!!)!!