Skip to content

Commit 30972cc

Browse files
committed
add tests
1 parent 65a80aa commit 30972cc

File tree

4 files changed

+45
-9
lines changed

4 files changed

+45
-9
lines changed

pkl-gradle/src/main/java/org/pkl/gradle/ExternalReader.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@
1616
package org.pkl.gradle;
1717

1818
import java.io.Serializable;
19+
import java.util.Collections;
1920
import java.util.List;
20-
import org.pkl.core.util.Nullable;
2121

22-
public record ExternalReader(String executable, @Nullable List<String> arguments)
23-
implements Serializable {
22+
public record ExternalReader(String executable, List<String> arguments) implements Serializable {
2423
public ExternalReader(String executable) {
25-
this(executable, null);
24+
this(executable, Collections.emptyList());
2625
}
2726
}

pkl-gradle/src/main/java/org/pkl/gradle/spec/BasePklSpec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public interface BasePklSpec {
6060
ListProperty<String> getHttpNoProxy();
6161

6262
MapProperty<URI, URI> getHttpRewrites();
63-
63+
6464
MapProperty<String, ExternalReader> getExternalModuleReaders();
6565

6666
MapProperty<String, ExternalReader> getExternalResourceReaders();

pkl-gradle/src/main/java/org/pkl/gradle/task/BasePklTask.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import org.gradle.api.tasks.InputFile;
4141
import org.gradle.api.tasks.InputFiles;
4242
import org.gradle.api.tasks.Internal;
43-
import org.gradle.api.tasks.Nested;
4443
import org.gradle.api.tasks.Optional;
4544
import org.gradle.api.tasks.TaskAction;
4645
import org.pkl.commons.cli.CliBaseOptions;
@@ -148,13 +147,11 @@ public Provider<String> getEvalRootDirPath() {
148147
@Input
149148
@Optional
150149
public abstract MapProperty<URI, URI> getHttpRewrites();
151-
150+
152151
@Input
153-
@Optional
154152
public abstract MapProperty<String, ExternalReader> getExternalModuleReaders();
155153

156154
@Input
157-
@Optional
158155
public abstract MapProperty<String, ExternalReader> getExternalResourceReaders();
159156

160157
/**

pkl-gradle/src/test/kotlin/org/pkl/gradle/EvaluatorsTest.kt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -896,6 +896,46 @@ class EvaluatorsTest : AbstractTest() {
896896
assertThat(result5.task(":evalTestGatherImports")).isNull()
897897
}
898898

899+
@Test
900+
fun `external module reader`() {
901+
writePklFile("import \"foo:test.pkl\"")
902+
writeBuildFile(
903+
"json",
904+
additionalContents =
905+
"""
906+
allowedModules = ["foo:", "file:", "repl:text"]
907+
externalModuleReaders = ["foo": new org.pkl.gradle.ExternalReader("echo")]
908+
"""
909+
.trimIndent(),
910+
)
911+
912+
// this is not actually a valid external reader, so we expect this to fail
913+
// this test is just asserting that Pkl is configured to use the external process
914+
// and that it does attempt to do so
915+
val result = runTask("evalTest", true)
916+
assertThat(result.output).contains("IOException: Stream closed")
917+
}
918+
919+
@Test
920+
fun `external resource reader`() {
921+
writePklFile("result = read(\"foo:test\")")
922+
writeBuildFile(
923+
"json",
924+
additionalContents =
925+
"""
926+
allowedResources = ["foo:", "prop:"]
927+
externalResourceReaders = ["foo": new org.pkl.gradle.ExternalReader("echo")]
928+
"""
929+
.trimIndent(),
930+
)
931+
932+
// this is not actually a valid external reader, so we expect this to fail
933+
// this test is just asserting that Pkl is configured to use the external process
934+
// and that it does attempt to do so
935+
val result = runTask("evalTest", true)
936+
assertThat(result.output).contains("IOException: Stream closed")
937+
}
938+
899939
private fun writeBuildFile(
900940
// don't use `org.pkl.core.OutputFormat`
901941
// because test compile class path doesn't contain pkl-core

0 commit comments

Comments
 (0)