From e9279f21376feb5c43675c31b6f25e9fabac2ac6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 4 Jun 2011 16:32:13 -0500 Subject: [PATCH] Added new render_template method which will make our lives nicer and also will be useful for unit testing purposes :) --- mediagoblin/util.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index fdb2c3f5..41f8a92a 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -78,6 +78,33 @@ def get_jinja_env(template_loader, locale): return template_env +# We'll store context information here when doing unit tests +TEMPLATE_TEST_CONTEXT = {} + + +def render_template(request, template, context): + """ + Render a template with context. + + Always inserts the request into the context, so you don't have to. + Also stores the context if we're doing unit tests. Helpful! + """ + template = request.template_env.get_template( + template) + context['request'] = request + rendered = template.render(context) + + if TESTS_ENABLED: + TEMPLATE_TEST_CONTEXT[template] = context + + return rendered + + +def clear_test_template_context(): + global TEMPLATE_TEST_CONTEXT + TEMPLATE_TEST_CONTEXT = {} + + def setup_user_in_request(request): """ Examine a request and tack on a request.user parameter if that's -- 2.25.1