From 2fff653c0926b64206faee3879db407034c4742c Mon Sep 17 00:00:00 2001 From: John Boxall Date: Tue, 28 May 2013 17:06:22 -0700 Subject: [PATCH] filter should accept objects. --- jinja2/filters.py | 2 +- jinja2/testsuite/filters.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/jinja2/filters.py b/jinja2/filters.py index 58c0bb66..8df262a0 100644 --- a/jinja2/filters.py +++ b/jinja2/filters.py @@ -183,7 +183,7 @@ def do_title(s): uppercase letters, all remaining characters are lowercase. """ rv = [] - for item in re.compile(r'([-\s]+)(?u)').split(s): + for item in re.compile(r'([-\s]+)(?u)').split(soft_unicode(s)): if not item: continue rv.append(item[0].upper() + item[1:]) diff --git a/jinja2/testsuite/filters.py b/jinja2/testsuite/filters.py index 5219f767..2aebb133 100644 --- a/jinja2/testsuite/filters.py +++ b/jinja2/testsuite/filters.py @@ -205,6 +205,14 @@ class FilterTestCase(JinjaTestCase): tmpl = env.from_string('''{{ "foo\tbar"|title }}''') assert tmpl.render() == "Foo\tBar" + class Foo: + def __str__(self): + return 'foo-bar' + + tmpl = env.from_string('''{{ data|title }}''') + out = tmpl.render(data=Foo()) + assert out == 'Foo-Bar' + def test_truncate(self): tmpl = env.from_string( '{{ data|truncate(15, true, ">>>") }}|' -- 2.47.2