diff --git a/src/main/java/com/hubspot/jinjava/objects/collections/PyMap.java b/src/main/java/com/hubspot/jinjava/objects/collections/PyMap.java index 09a018d81..c885dfd70 100644 --- a/src/main/java/com/hubspot/jinjava/objects/collections/PyMap.java +++ b/src/main/java/com/hubspot/jinjava/objects/collections/PyMap.java @@ -21,6 +21,10 @@ protected Map delegate() { return map; } + public Object get(String key, Object defaultValue) { + return getOrDefault(key, defaultValue); + } + @Override public Object put(String s, Object o) { if (o == this) { diff --git a/src/test/java/com/hubspot/jinjava/objects/collections/PyMapTest.java b/src/test/java/com/hubspot/jinjava/objects/collections/PyMapTest.java index 9403c1e19..0d046ddae 100644 --- a/src/test/java/com/hubspot/jinjava/objects/collections/PyMapTest.java +++ b/src/test/java/com/hubspot/jinjava/objects/collections/PyMapTest.java @@ -322,6 +322,18 @@ public void itGetsKeysWithVariableName() { .isEqualTo("value1"); } + @Test + public void itSupportsGetWithOptionalDefault() { + assertThat( + jinjava.render( + "{% set test = {\"key1\": \"value1\"} %}" + + "{{ test.get(\"key2\", \"default\") }}", + Collections.emptyMap() + ) + ) + .isEqualTo("default"); + } + @Test public void itFallsBackUnknownVariableNameToString() { assertThat(