PCQA-1378 Write 'No venv suggested as base Python' test

GitOrigin-RevId: 93a978684810833b90fec32cef780c558918deca
This commit is contained in:
Denis Mashutin
2025-11-20 18:13:02 +00:00
committed by intellij-monorepo-bot
parent 70beb61277
commit 240243fc49
@@ -5,12 +5,13 @@ import com.intellij.driver.sdk.step
import com.intellij.driver.sdk.ui.Finder
import com.intellij.driver.sdk.ui.components.ComponentData
import com.intellij.driver.sdk.ui.components.UiComponent
import com.intellij.driver.sdk.ui.components.elements.accessibleList
import com.intellij.driver.sdk.ui.components.elements.checkBox
import com.intellij.driver.sdk.ui.components.elements.popup
import com.intellij.driver.sdk.ui.components.elements.comboBox
import com.intellij.driver.sdk.ui.components.elements.textField
import com.intellij.driver.sdk.ui.shouldBe
import com.intellij.driver.sdk.ui.ui
import javax.swing.JTextField
import kotlin.time.Duration.Companion.seconds
fun Finder.newProjectDialog(action: NewProjectDialogUI.() -> Unit) {
x("//div[@title='New Project']", NewProjectDialogUI::class.java).action()
@@ -40,8 +41,11 @@ open class NewProjectDialogUI(data: ComponentData) : UiComponent(data) {
fun selectJdk(jdkVersion: String) {
step("Pick JDK version") {
x("//div[@accessiblename='JDK:']/div[@class='BasicArrowButton']").click()
driver.ui.popup().accessibleList().clickItem(jdkVersion, false)
this.comboBox { byClass("ProjectWizardJdkComboBox") }
.apply {
val expectedItem = listValues().first { it.contains(jdkVersion) }
selectItemContains(expectedItem)
}
}
}
@@ -63,6 +67,15 @@ open class NewProjectDialogUI(data: ComponentData) : UiComponent(data) {
.click()
}
fun getBasePythonInterpreters(): List<String> {
interpreterSelector.waitFound().shouldBe(
message = "Wait for interpreter list to appear",
timeout = 5.seconds,
condition = { listValues().isNotEmpty() }
)
return interpreterSelector.listValues()
}
val nameTextField = textField { and(byAccessibleName("Name:"), byType(JTextField::class.java)) }
val groupField = textField { and(byAccessibleName("Group:"), byType(JTextField::class.java)) }
val artifactField = textField { and(byAccessibleName("Artifact:"), byType(JTextField::class.java)) }
@@ -75,5 +88,7 @@ open class NewProjectDialogUI(data: ComponentData) : UiComponent(data) {
val compactStructureLabel = checkBox { byText("Use compact project structure") }
val createMainPyCheckbox = checkBox { byText("Create a welcome script") }
val installMinicondaLink = x("//div[@text='Install Miniconda']")
val projectVenvButton = x { byAccessibleName("Project venv") }
private val interpreterSelector = comboBox { byClass("PythonInterpreterComboBox") }
}