mirror of
https://github.com/apple/pkl.git
synced 2026-05-27 17:19:15 +02:00
Defer noProxy to settings.pkl or PklProject if not set explicitly (#1143)
Fixes an issue where `http.noProxy` settings are ignored.
This commit is contained in:
@@ -1230,6 +1230,92 @@ result = someLib.x
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `noProxy settings from PklProject file`() {
|
||||||
|
val moduleUri =
|
||||||
|
writePklFile(
|
||||||
|
"test.pkl",
|
||||||
|
"""
|
||||||
|
res = read("https://localhost:${packageServer.port}/birds@0.5.0").bytes.sha256
|
||||||
|
"""
|
||||||
|
.trimIndent(),
|
||||||
|
)
|
||||||
|
writePklFile(
|
||||||
|
"PklProject",
|
||||||
|
// language=Pkl
|
||||||
|
"""
|
||||||
|
amends "pkl:Project"
|
||||||
|
|
||||||
|
evaluatorSettings {
|
||||||
|
http {
|
||||||
|
proxy {
|
||||||
|
address = "http://example.example"
|
||||||
|
noProxy {
|
||||||
|
"localhost:${packageServer.port}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
.trimIndent(),
|
||||||
|
)
|
||||||
|
val options =
|
||||||
|
CliEvaluatorOptions(
|
||||||
|
CliBaseOptions(
|
||||||
|
sourceModules = listOf(moduleUri),
|
||||||
|
workingDir = tempDir,
|
||||||
|
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
val buffer = ByteArrayOutputStream()
|
||||||
|
CliEvaluator(options, outputStream = buffer).run()
|
||||||
|
assertThat(buffer.toString(StandardCharsets.UTF_8))
|
||||||
|
.isEqualTo("res = \"b27206b80f4f227752b6f02143887f3ea41e554542cec38f7b572b987566c4de\"\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `noProxy settings from settings file`() {
|
||||||
|
val moduleUri =
|
||||||
|
writePklFile(
|
||||||
|
"test.pkl",
|
||||||
|
"""
|
||||||
|
res = read("https://localhost:${packageServer.port}/birds@0.5.0").bytes.sha256
|
||||||
|
"""
|
||||||
|
.trimIndent(),
|
||||||
|
)
|
||||||
|
val settingsFile =
|
||||||
|
writePklFile(
|
||||||
|
"settings.pkl",
|
||||||
|
// language=Pkl
|
||||||
|
"""
|
||||||
|
amends "pkl:settings"
|
||||||
|
|
||||||
|
http {
|
||||||
|
proxy {
|
||||||
|
address = "http://example.example"
|
||||||
|
noProxy {
|
||||||
|
"localhost:${packageServer.port}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
.trimIndent(),
|
||||||
|
)
|
||||||
|
val options =
|
||||||
|
CliEvaluatorOptions(
|
||||||
|
CliBaseOptions(
|
||||||
|
sourceModules = listOf(moduleUri),
|
||||||
|
workingDir = tempDir,
|
||||||
|
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||||
|
settings = settingsFile,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
val buffer = ByteArrayOutputStream()
|
||||||
|
CliEvaluator(options, outputStream = buffer).run()
|
||||||
|
assertThat(buffer.toString(StandardCharsets.UTF_8))
|
||||||
|
.isEqualTo("res = \"b27206b80f4f227752b6f02143887f3ea41e554542cec38f7b572b987566c4de\"\n")
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `setting noCache will skip writing to the cache dir`() {
|
fun `setting noCache will skip writing to the cache dir`() {
|
||||||
val moduleUri =
|
val moduleUri =
|
||||||
|
|||||||
@@ -149,6 +149,14 @@ class CliMainTest {
|
|||||||
assertThat(ex.message).contains("Rewrite rule must end with '/', but was 'http://foo.com'")
|
assertThat(ex.message).contains("Rewrite rule must end with '/', but was 'http://foo.com'")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `missing --http-no-proxy flag is null`(@TempDir tempDir: Path) {
|
||||||
|
val inputFile = tempDir.resolve("test.pkl").writeString("").toString()
|
||||||
|
val command = EvalCommand()
|
||||||
|
command.parse(arrayOf(inputFile))
|
||||||
|
assertThat(command.baseOptions.noProxy).isNull()
|
||||||
|
}
|
||||||
|
|
||||||
private fun makeInput(tempDir: Path, fileName: String = "test.pkl"): String {
|
private fun makeInput(tempDir: Path, fileName: String = "test.pkl"): String {
|
||||||
val code = "x = 1"
|
val code = "x = 1"
|
||||||
return tempDir.resolve(fileName).writeString(code).toString()
|
return tempDir.resolve(fileName).writeString(code).toString()
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ class BaseOptions : OptionGroup() {
|
|||||||
noProject = projectOptions?.noProject ?: false,
|
noProject = projectOptions?.noProject ?: false,
|
||||||
caCertificates = caCertificates,
|
caCertificates = caCertificates,
|
||||||
httpProxy = proxy,
|
httpProxy = proxy,
|
||||||
httpNoProxy = noProxy ?: emptyList(),
|
httpNoProxy = noProxy,
|
||||||
httpRewrites = httpRewrites.ifEmpty { null },
|
httpRewrites = httpRewrites.ifEmpty { null },
|
||||||
externalModuleReaders = externalModuleReaders,
|
externalModuleReaders = externalModuleReaders,
|
||||||
externalResourceReaders = externalResourceReaders,
|
externalResourceReaders = externalResourceReaders,
|
||||||
|
|||||||
Reference in New Issue
Block a user