Fixed #24273 -- Allowed copying RequestContext more than once.

Thanks Collin Anderson for the report.
This commit is contained in:
Aymeric Augustin 2015-02-05 13:20:33 +01:00
parent de62b8ef45
commit 31d3a35579
2 changed files with 8 additions and 2 deletions

View File

@ -232,5 +232,6 @@ class RequestContext(Context):
new_context = super(RequestContext, self).new(values)
# This is for backwards-compatibility: RequestContexts created via
# Context.new don't include values from context processors.
del new_context._processors_index
if hasattr(new_context, '_processors_index'):
del new_context._processors_index
return new_context

View File

@ -2,7 +2,8 @@
from unittest import TestCase
from django.template import Context, Variable, VariableDoesNotExist
from django.http import HttpRequest
from django.template import Context, RequestContext, Variable, VariableDoesNotExist
from django.template.context import RenderContext
@ -83,3 +84,7 @@ class ContextTests(TestCase):
# make contexts equals again
b.update({'a': 1})
self.assertEqual(a, b)
def test_copy_request_context_twice(self):
# Regression test for #24273 - this doesn't raise an exception
RequestContext(HttpRequest()).new().new()