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 280b14e66..05c715831 100644 --- a/src/main/java/com/hubspot/jinjava/objects/collections/PyMap.java +++ b/src/main/java/com/hubspot/jinjava/objects/collections/PyMap.java @@ -38,6 +38,10 @@ public Set> items() { return entrySet(); } + public Set keys() { + return keySet(); + } + public void update(Map m) { if (m == this) { throw new IllegalArgumentException("Can't update map object with itself"); diff --git a/src/test/java/com/hubspot/jinjava/el/ext/AstDictTest.java b/src/test/java/com/hubspot/jinjava/el/ext/AstDictTest.java index 7e60db6b5..a225ea956 100644 --- a/src/test/java/com/hubspot/jinjava/el/ext/AstDictTest.java +++ b/src/test/java/com/hubspot/jinjava/el/ext/AstDictTest.java @@ -44,6 +44,12 @@ public void itDoesItemsMethodCall() { .isInstanceOf(Set.class); } + @Test + public void itDoesKeysMethodCall() { + interpreter.getContext().put("foo", ImmutableMap.of(TestEnum.BAR, "test")); + assertThat(interpreter.resolveELExpression("foo.keys()", -1)).isInstanceOf(Set.class); + } + @Test public void itHandlesEmptyMaps() { interpreter.getContext().put("foo", ImmutableMap.of());