1
0
mirror of https://github.com/django/django.git synced 2025-10-31 01:25:32 +00:00

Fixed #15368 - test failures due to regression with RequestContext

Thanks to cyberdelia for the reports on this.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15660 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Luke Plant
2011-02-27 00:24:35 +00:00
parent b5b5ba6cd9
commit 2366415f48
5 changed files with 29 additions and 15 deletions

View File

@@ -14,14 +14,21 @@ class ContextPopException(Exception):
"pop() has been called more times than push()"
pass
class EmptyClass(object):
# No-op class which takes no args to its __init__ method, to help implement
# __copy__
pass
class BaseContext(object):
def __init__(self, dict_=None):
dict_ = dict_ or {}
self.dicts = [dict_]
def __copy__(self):
duplicate = self._new()
duplicate.dicts = [dict_ for dict_ in self.dicts]
duplicate = EmptyClass()
duplicate.__class__ = self.__class__
duplicate.__dict__ = self.__dict__.copy()
duplicate.dicts = duplicate.dicts[:]
return duplicate
def __repr__(self):
@@ -31,9 +38,6 @@ class BaseContext(object):
for d in reversed(self.dicts):
yield d
def _new(self):
return self.__class__()
def push(self):
d = {}
self.dicts.append(d)
@@ -88,11 +92,6 @@ class Context(BaseContext):
duplicate.render_context = copy(self.render_context)
return duplicate
def _new(self):
return self.__class__(autoescape=self.autoescape,
current_app=self.current_app,
use_l10n=self.use_l10n)
def update(self, other_dict):
"Pushes other_dict to the stack of dictionaries in the Context"
if not hasattr(other_dict, '__getitem__'):
@@ -168,8 +167,3 @@ class RequestContext(Context):
processors = tuple(processors)
for processor in get_standard_processors() + processors:
self.update(processor(request))
def _new(self):
return self.__class__(request=HttpRequest(),
current_app=self.current_app,
use_l10n=self.use_l10n)