Added new testcase
authorArmin Ronacher <armin.ronacher@active-4.com>
Tue, 6 Jul 2010 09:37:45 +0000 (11:37 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Tue, 6 Jul 2010 09:37:45 +0000 (11:37 +0200)
--HG--
branch : trunk

jinja2/ext.py
jinja2/testsuite/ext.py

index ddab4fb64e91316bf47972babfd4f29c89aa125d..ceb38953a8bba66412d489720624eed85813cbe7 100644 (file)
@@ -327,7 +327,7 @@ class InternationalizationExtension(Extension):
                    vars_referenced, num_called_num):
         """Generates a useful node from the data provided."""
         # no variables referenced?  no need to escape for old style
-        # gettext invocations
+        # gettext invocations only if there are vars.
         if not vars_referenced and not self.environment.newstyle_gettext:
             singular = singular.replace('%%', '%')
             if plural:
index 6a88834e37c5ae70c086bf3435574da926ce0407..530fed4dcf5ab1c4a618178956a01ca496e72e5b 100644 (file)
@@ -54,7 +54,9 @@ newstyle_i18n_templates = {
                           '{{ num }} apples{% endtrans %}',
     'transvars1.html': '{% trans %}User: {{ num }}{% endtrans %}',
     'transvars2.html': '{% trans num=count %}User: {{ num }}{% endtrans %}',
-    'transvars3.html': '{% trans count=num %}User: {{ count }}{% endtrans %}'
+    'transvars3.html': '{% trans count=num %}User: {{ count }}{% endtrans %}',
+    'novars.html': '{% trans %}%(hello)s{% endtrans %}',
+    'vars.html': '{% trans %}{{ foo }}%(foo)s{% endtrans %}'
 }
 
 
@@ -357,6 +359,12 @@ class NewstyleInternationalizationTestCase(JinjaTestCase):
         assert t2.render(count=23, LANGUAGE='de') == 'Benutzer: 23'
         assert t3.render(num=42, LANGUAGE='de') == 'Benutzer: 42'
 
+    def test_novars_vars_escaping(self):
+        t = newstyle_i18n_env.get_template('novars.html')
+        assert t.render() == '%(hello)s'
+        t = newstyle_i18n_env.get_template('vars.html')
+        assert t.render(foo='42') == '42%(foo)s'
+
 
 class AutoEscapeTestCase(JinjaTestCase):