1
0
mirror of https://github.com/django/django.git synced 2024-12-29 04:26:28 +00:00

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) new_context = super(RequestContext, self).new(values)
# This is for backwards-compatibility: RequestContexts created via # This is for backwards-compatibility: RequestContexts created via
# Context.new don't include values from context processors. # Context.new don't include values from context processors.
if hasattr(new_context, '_processors_index'):
del new_context._processors_index del new_context._processors_index
return new_context return new_context

View File

@ -2,7 +2,8 @@
from unittest import TestCase 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 from django.template.context import RenderContext
@ -83,3 +84,7 @@ class ContextTests(TestCase):
# make contexts equals again # make contexts equals again
b.update({'a': 1}) b.update({'a': 1})
self.assertEqual(a, b) 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()