aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index ed8fb91906..ee6fc425bb 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -163,6 +163,7 @@ public class SkylarkEvaluationTest extends EvaluationTest {
return ImmutableMap.of("a", ImmutableList.of("b", "c"));
}
+
@SkylarkCallable(
name = "with_params",
documented = false,
@@ -352,6 +353,18 @@ public class SkylarkEvaluationTest extends EvaluationTest {
+ ")";
}
+ @SkylarkCallable(name = "proxy_methods_object",
+ doc = "Returns a struct containing all callable method objects of this mock",
+ allowReturnNones = true)
+ public ClassObject proxyMethodsObject() {
+ ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
+ for (String nativeFunction : FuncallExpression.getMethodNames(Mock.class)) {
+ builder.put(nativeFunction,
+ FuncallExpression.getBuiltinCallable(this, nativeFunction));
+ }
+ return NativeProvider.STRUCT.create(builder.build(), "no native callable '%s'");
+ }
+
@Override
public String toString() {
return "<mock>";
@@ -921,6 +934,16 @@ public class SkylarkEvaluationTest extends EvaluationTest {
}
@Test
+ public void testProxyMethodsObject() throws Exception {
+ new SkylarkTest()
+ .update("mock", new Mock())
+ .setUp(
+ "m = mock.proxy_methods_object()",
+ "b = m.with_params(1, True, named=True)")
+ .testLookup("b", "with_params(1, true, false, true, false, a)");
+ }
+
+ @Test
public void testJavaCallWithPositionalAndKwargs() throws Exception {
new SkylarkTest()
.update("mock", new Mock())
@@ -1527,6 +1550,7 @@ public class SkylarkEvaluationTest extends EvaluationTest {
"is_empty",
"nullfunc_failing",
"nullfunc_working",
+ "proxy_methods_object",
"return_bad",
"string",
"string_list",