From 8e08a21d1df24d88f547513be2d6f56df4a792eb Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Thu, 29 Dec 2016 00:20:34 +0100 Subject: ported list and sum --- tests/test_asyncfilters.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'tests') diff --git a/tests/test_asyncfilters.py b/tests/test_asyncfilters.py index 348a66b7..8732e780 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' -- cgit v1.2.3