in jetbrains-core/it/software/aws/toolkits/jetbrains/core/execution/PythonAwsConnectionExtensionIntegrationTest.kt [46:90]
fun happyPathPythonConnectionInjection() {
val file = projectRule.fixture.addFileToProject(
"hello.py",
"""
import os
print(os.environ["AWS_REGION"])
""".trimIndent()
)
val runManager = RunManager.getInstance(projectRule.project)
val configuration = runManager.createConfiguration("test", PythonConfigurationType::class.java)
val runConfiguration = configuration.configuration as PythonRunConfiguration
lateinit var pythonExecutable: String
Disposer.newDisposable().use { disposable ->
// Allow us to search system for all pythons
FileSystems.getDefault().rootDirectories.forEach { root ->
Files.list(root).forEach {
VfsRootAccess.allowRootAccess(disposable, it.toString())
}
}
pythonExecutable = detectSystemWideSdks(null, emptyList()).first().homePath!!
}
assertThat(pythonExecutable).isNotEmpty
runConfiguration.scriptName = file.virtualFile.path
runConfiguration.sdkHome = pythonExecutable
val mockRegion = regionProviderRule.createAwsRegion()
val mockCredential = credentialManagerRule.createCredentialProvider()
runConfiguration.putCopyableUserData<AwsCredentialInjectionOptions>(
AWS_CONNECTION_RUN_CONFIGURATION_KEY,
AwsCredentialInjectionOptions {
region = mockRegion.id
credential = mockCredential.id
}
)
VfsRootAccess.allowRootAccess(projectRule.fixture.testRootDisposable, pythonExecutable)
val executor = ExecutorRegistry.getInstance().getExecutorById(DefaultRunExecutor.EXECUTOR_ID)
assertNotNull(executor)
assertThat(executeRunConfigurationAndWait(runConfiguration).stdout).isEqualToIgnoringWhitespace(mockRegion.id)
}