mirror of
https://github.com/django/django.git
synced 2025-11-07 07:15:35 +00:00
[1.7.x] Fixed an inconsistency introduced in 547b1810.
mark_safe and mark_for_escaping should have been kept similar.
On Python 2 this change has no effect. On Python 3 it fixes the use case
shown in the regression test for mark_for_escaping, which used to raise
a TypeError. The regression test for mark_safe is just for completeness.
Backport of 5c5eb5fe from master.
This commit is contained in:
@@ -31,6 +31,15 @@ class SafeStringTest(TestCase):
|
||||
self.assertIsInstance(mark_safe(b), SafeData)
|
||||
self.assertRenderEqual('{{ s }}', 'a&b', s=mark_safe(s))
|
||||
|
||||
def test_mark_safe_object_implementing_dunder_str(self):
|
||||
class Obj(object):
|
||||
def __str__(self):
|
||||
return '<obj>'
|
||||
|
||||
s = mark_safe(Obj())
|
||||
|
||||
self.assertRenderEqual('{{ s }}', '<obj>', s=s)
|
||||
|
||||
def test_mark_for_escaping(self):
|
||||
s = mark_for_escaping('a&b')
|
||||
self.assertRenderEqual('{{ s }}', 'a&b', s=s)
|
||||
@@ -47,3 +56,12 @@ class SafeStringTest(TestCase):
|
||||
def test_html(self):
|
||||
s = '<h1>interop</h1>'
|
||||
self.assertEqual(s, mark_safe(s).__html__())
|
||||
|
||||
def test_mark_for_escaping_object_implementing_dunder_str(self):
|
||||
class Obj(object):
|
||||
def __str__(self):
|
||||
return '<obj>'
|
||||
|
||||
s = mark_for_escaping(Obj())
|
||||
|
||||
self.assertRenderEqual('{{ s }}', '<obj>', s=s)
|
||||
|
||||
Reference in New Issue
Block a user