Commit 39b8a1f7 authored by Chris Beaven's avatar Chris Beaven
Browse files

[1.2.X] Fix broken tests due to changes in r15591 by updating the test...

[1.2.X] Fix broken tests due to changes in r15591 by updating the test store_rendered_templates signal handler.

Backport of r15600 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15601 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 3db9383d
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
from copy import copy
from django.core.exceptions import ImproperlyConfigured
from django.utils.importlib import import_module
from django.http import HttpRequest

# Cache of actual callables.
_standard_context_processors = None
@@ -17,6 +19,11 @@ class BaseContext(object):
        dict_ = dict_ or {}
        self.dicts = [dict_]

    def __copy__(self):
        duplicate = self._new()
        duplicate.dicts = [dict_ for dict_ in self.dicts]
        return duplicate

    def __repr__(self):
        return repr(self.dicts)

@@ -24,6 +31,9 @@ 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)
@@ -72,6 +82,16 @@ class Context(BaseContext):
        self.render_context = RenderContext()
        super(Context, self).__init__(dict_)

    def __copy__(self):
        duplicate = super(Context, self).__copy__()
        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):
        "Like dict.update(). Pushes an entire dictionary's keys and values onto the context."
        if not hasattr(other_dict, '__getitem__'):
@@ -147,3 +167,8 @@ 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)
+6 −2
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ import sys
import os
import re
import mimetypes
from copy import copy
try:
    from cStringIO import StringIO
except ImportError:
@@ -92,9 +93,12 @@ class ClientHandler(BaseHandler):
def store_rendered_templates(store, signal, sender, template, context, **kwargs):
    """
    Stores templates and contexts that are rendered.

    The context is copied so that it is an accurate representation at the time
    of rendering.
    """
    store.setdefault('template', []).append(template)
    store.setdefault('context', ContextList()).append(context)
    store.setdefault('templates', []).append(template)
    store.setdefault('context', ContextList()).append(copy(context))

def encode_multipart(boundary, data):
    """