summaryrefslogtreecommitdiff
path: root/tests/test_asyncfilters.py
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2016-12-29 00:20:34 +0100
committerArmin Ronacher <armin.ronacher@active-4.com>2016-12-29 00:20:34 +0100
commit8e08a21d1df24d88f547513be2d6f56df4a792eb (patch)
tree2175f4a65b73e532e565ea6f34b034804a6e5524 /tests/test_asyncfilters.py
parentaf74d2df62a5f54fad708af8f680554cc84fbb52 (diff)
downloadjinja2-8e08a21d1df24d88f547513be2d6f56df4a792eb.tar.gz
ported list and sum
Diffstat (limited to 'tests/test_asyncfilters.py')
-rw-r--r--tests/test_asyncfilters.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/test_asyncfilters.py b/tests/test_asyncfilters.py
index 348a66b..8732e78 100644
--- a/tests/test_asyncfilters.py
+++ b/tests/test_asyncfilters.py
@@ -165,3 +165,52 @@ def test_simple_select_attr(env_async, users):
'map(attribute="name")|join("|") }}'
)
assert tmpl.render(users=users) == 'john|jane'
+
+
+@mark_dualiter('items', lambda: list('123'))
+def test_simple_map(env_async, items):
+ tmpl = env_async.from_string('{{ items()|map("int")|sum }}')
+ assert tmpl.render(items=items) == '6'
+
+
+@mark_dualiter('users', make_users)
+def test_attribute_map(env_async, users):
+ tmpl = env_async.from_string('{{ users()|map(attribute="name")|join("|") }}')
+ assert tmpl.render(users=users) == 'john|jane|mike'
+
+
+def test_empty_map(env_async):
+ tmpl = env_async.from_string('{{ none|map("upper")|list }}')
+ assert tmpl.render() == '[]'
+
+
+def test_sum(env_async):
+ tmpl = env_async.from_string('''{{ [1, 2, 3, 4, 5, 6]|sum }}''')
+ assert tmpl.render() == '21'
+
+
+def test_sum_attributes(env_async):
+ tmpl = env_async.from_string('''{{ values|sum('value') }}''')
+ assert tmpl.render(values=[
+ {'value': 23},
+ {'value': 1},
+ {'value': 18},
+ ]) == '42'
+
+
+def test_sum_attributes_nested(env_async):
+ tmpl = env_async.from_string('''{{ values|sum('real.value') }}''')
+ assert tmpl.render(values=[
+ {'real': {'value': 23}},
+ {'real': {'value': 1}},
+ {'real': {'value': 18}},
+ ]) == '42'
+
+
+def test_sum_attributes_tuple(env_async):
+ tmpl = env_async.from_string('''{{ values.items()|sum('1') }}''')
+ assert tmpl.render(values={
+ 'foo': 23,
+ 'bar': 1,
+ 'baz': 18,
+ }) == '42'