summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-04-07 15:16:11 +0000
committerClaude Paroz <claude@2xlibre.net>2012-04-07 15:16:11 +0000
commit8dd04fd84b4f69c4326e120c301d49a6c00e8e64 (patch)
treeec3ff8375d044fadeeb43befd4c9b234678c7a1c
parent8663bc110305844b2f8b0829ee2ddfc5be61b758 (diff)
Fixed #15683 -- Prevented escaped string to be needlessly marked safe twice in force_escape filter. Thanks tyrion for the initial patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17876 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/template/defaultfilters.py2
-rw-r--r--tests/regressiontests/defaultfilters/tests.py6
2 files changed, 5 insertions, 3 deletions
diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py
index f93e799535..3efb73cf96 100644
--- a/django/template/defaultfilters.py
+++ b/django/template/defaultfilters.py
@@ -419,7 +419,7 @@ def force_escape(value):
characters (as opposed to "escape", which marks the content for later
possible escaping).
"""
- return mark_safe(escape(value))
+ return escape(value)
@register.filter("linebreaks", is_safe=True, needs_autoescape=True)
@stringfilter
diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py
index 38e44d4869..88389be017 100644
--- a/tests/regressiontests/defaultfilters/tests.py
+++ b/tests/regressiontests/defaultfilters/tests.py
@@ -6,6 +6,7 @@ import decimal
from django.template.defaultfilters import *
from django.test import TestCase
from django.utils import unittest, translation
+from django.utils.safestring import SafeData
class DefaultFiltersTests(TestCase):
@@ -328,9 +329,10 @@ class DefaultFiltersTests(TestCase):
u'a string to be mangled')
def test_force_escape(self):
+ escaped = force_escape(u'<some html & special characters > here')
self.assertEqual(
- force_escape(u'<some html & special characters > here'),
- u'&lt;some html &amp; special characters &gt; here')
+ escaped, u'&lt;some html &amp; special characters &gt; here')
+ self.assertTrue(isinstance(escaped, SafeData))
self.assertEqual(
force_escape(u'<some html & special characters > here ĐÅ€£'),
u'&lt;some html &amp; special characters &gt; here'\