Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #12554: Silence exceptions that have specified silent_variable_…

…failure=True. Thanks Thomas Steinacher, copelco, mlavin.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12823 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 2403f581b3cd0e7528f4b60c712f460fed91e2c2 1 parent 10884ec
Karen Tracey kmtracey authored
10 django/template/__init__.py
View
@@ -745,11 +745,11 @@ def _resolve_lookup(self, context):
TypeError, # unsubscriptable object
):
raise VariableDoesNotExist("Failed lookup for key [%s] in %r", (bit, current)) # missing attribute
- except Exception, e:
- if getattr(e, 'silent_variable_failure', False):
- current = settings.TEMPLATE_STRING_IF_INVALID
- else:
- raise
+ except Exception, e:
+ if getattr(e, 'silent_variable_failure', False):
+ current = settings.TEMPLATE_STRING_IF_INVALID
+ else:
+ raise
return current
9 tests/regressiontests/templates/tests.py
View
@@ -97,6 +97,10 @@ class OtherClass:
def method(self):
return "OtherClass.method"
+class SilentGetItemClass(object):
+ def __getitem__(self, key):
+ raise SomeException
+
class UTF8Class:
"Class whose __str__ returns non-ASCII data"
def __str__(self):
@@ -465,6 +469,11 @@ def get_template_tests(self):
'basic-syntax26': (r'{{ "\"fred\"" }}', {}, "\"fred\""),
'basic-syntax27': (r'{{ _("\"fred\"") }}', {}, "\"fred\""),
+ # regression test for ticket #12554
+ # make sure a silent_variable_failure Exception is supressed
+ # on dictionary lookup
+ 'basic-syntax28': ("{{ a.b }}", {'a': SilentGetItemClass()}, ('', 'INVALID')),
+
# List-index syntax allows a template to access a certain item of a subscriptable object.
'list-index01': ("{{ var.1 }}", {"var": ["first item", "second item"]}, "second item"),
Please sign in to comment.
Something went wrong with that request. Please try again.