From ccff25b1431bd1bb9d633b1ca1d3aff79acc33d9 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 12 Aug 2013 12:41:39 -0400 Subject: [1.6.x] Fixed #17778 -- Prevented class attributes on context from resolving as template variables. Thanks KyleMac for the report, regebro for the patch, and Aymeric for the test. Backport of 71b5617c24 from master. --- tests/template_tests/test_context.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/template_tests/test_context.py b/tests/template_tests/test_context.py index 05c1dd57b9..778f4051e8 100644 --- a/tests/template_tests/test_context.py +++ b/tests/template_tests/test_context.py @@ -1,5 +1,5 @@ # coding: utf-8 -from django.template import Context +from django.template import Context, Variable, VariableDoesNotExist from django.utils.unittest import TestCase @@ -14,3 +14,12 @@ class ContextTests(TestCase): self.assertEqual(c.pop(), {"a": 2}) self.assertEqual(c["a"], 1) self.assertEqual(c.get("foo", 42), 42) + + def test_resolve_on_context_method(self): + # Regression test for #17778 + empty_context = Context() + self.assertRaises(VariableDoesNotExist, + Variable('no_such_variable').resolve, empty_context) + self.assertRaises(VariableDoesNotExist, + Variable('new').resolve, empty_context) + self.assertEqual(Variable('new').resolve(Context({'new': 'foo'})), 'foo') -- cgit v1.3