From: John Boxall Date: Wed, 29 May 2013 00:06:22 +0000 (-0700) Subject: filter should accept objects. X-Git-Tag: 2.8~113^2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fff653c0926b64206faee3879db407034c4742c;p=thirdparty%2Fjinja.git filter should accept objects. --- 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, ">>>") }}|'