Fixed #27783 -- Switched VariableDoesNotExist.__str__() to repr() context.
Using __str__() and then repr'ing the result looks strange and can lead to recursive rendering of forms.
This commit is contained in:
parent
2757209c9d
commit
7c4289d0b9
|
@ -119,7 +119,7 @@ class VariableDoesNotExist(Exception):
|
||||||
self.params = params
|
self.params = params
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.msg % tuple(force_text(p, errors='replace') for p in self.params)
|
return self.msg % self.params
|
||||||
|
|
||||||
|
|
||||||
class Origin:
|
class Origin:
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
from django.template.base import VariableDoesNotExist
|
||||||
|
from django.test import SimpleTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class VariableDoesNotExistTests(SimpleTestCase):
|
||||||
|
def test_str(self):
|
||||||
|
exc = VariableDoesNotExist(msg='Failed lookup in %r', params=({'foo': 'bar'},))
|
||||||
|
self.assertEqual(str(exc), "Failed lookup in {'foo': 'bar'}")
|
|
@ -75,7 +75,7 @@ class VariableResolveLoggingTests(BaseTemplateLoggingTestCase):
|
||||||
raised_exception = self.test_handler.log_record.exc_info[1]
|
raised_exception = self.test_handler.log_record.exc_info[1]
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
str(raised_exception),
|
str(raised_exception),
|
||||||
'Failed lookup for key [author] in %r' % ("{%r: %r}" % ('section', 'News'))
|
"Failed lookup for key [author] in {'section': 'News'}"
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_no_log_when_variable_exists(self):
|
def test_no_log_when_variable_exists(self):
|
||||||
|
|
Loading…
Reference in New Issue