Skip to content

Commit a1565c2

Browse files
committed
add tests
1 parent 8bd5ba3 commit a1565c2

File tree

5 files changed

+46
-9
lines changed

5 files changed

+46
-9
lines changed

.idea/codeStyles/Project.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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
@@ -898,6 +898,46 @@ class EvaluatorsTest : AbstractTest() {
898898
assertThat(result5.task(":evalTestGatherImports")).isNull()
899899
}
900900

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

0 commit comments

Comments
 (0)