diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2016-12-29 00:20:34 +0100 |
---|---|---|
committer | Armin Ronacher <armin.ronacher@active-4.com> | 2016-12-29 00:20:34 +0100 |
commit | 8e08a21d1df24d88f547513be2d6f56df4a792eb (patch) | |
tree | 2175f4a65b73e532e565ea6f34b034804a6e5524 /tests/test_asyncfilters.py | |
parent | af74d2df62a5f54fad708af8f680554cc84fbb52 (diff) | |
download | jinja2-8e08a21d1df24d88f547513be2d6f56df4a792eb.tar.gz |
ported list and sum
Diffstat (limited to 'tests/test_asyncfilters.py')
-rw-r--r-- | tests/test_asyncfilters.py | 49 |
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' |