]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Corrected title filter behavior.
authorArmin Ronacher <armin.ronacher@active-4.com>
Wed, 7 Aug 2013 11:53:03 +0000 (12:53 +0100)
committerArmin Ronacher <armin.ronacher@active-4.com>
Wed, 7 Aug 2013 11:53:03 +0000 (12:53 +0100)
The title filter will now correctly lowercase the non first letter
like the regular Python filter does.

This fixes #251.

CHANGES
jinja2/filters.py
jinja2/testsuite/filters.py

diff --git a/CHANGES b/CHANGES
index 01afc4ea298f3067828e81848213fc8e1448c961..6079411f7b8e8d9c7ab385cf5f1bb106c7a90bff 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -13,6 +13,8 @@ Version 2.7.1
 - Fixed some warnings with hashing of undefineds and nodes if Python
   is run with warnings for Python 3.
 - Added support for properly hashing undefined objects.
+- Fixed a bug with the title filter not working on already uppercase
+  strings.
 
 Version 2.7
 -----------
index 49e82aad398eea14934db2dfd014a4fbb0557aa6..fd0db04aa41026500910347cf401fe620c556188 100644 (file)
@@ -186,7 +186,7 @@ def do_title(s):
     for item in re.compile(r'([-\s]+)(?u)').split(s):
         if not item:
             continue
-        rv.append(item[0].upper() + item[1:])
+        rv.append(item[0].upper() + item[1:].lower())
     return ''.join(rv)
 
 
index 1e1706fd29f3de6aad486e63637e6f6ee56c5118..282dd2d85fd174b063bd7998dccf1ad53098b4c5 100644 (file)
@@ -208,6 +208,8 @@ class FilterTestCase(JinjaTestCase):
         assert tmpl.render() == "Foo-Bar"
         tmpl = env.from_string('''{{ "foo\tbar"|title }}''')
         assert tmpl.render() == "Foo\tBar"
+        tmpl = env.from_string('''{{ "FOO\tBAR"|title }}''')
+        assert tmpl.render() == "Foo\tBar"
 
     def test_truncate(self):
         tmpl = env.from_string(