def test_clear_request_context_variable(self): """ Test the global variable requestcontext is cleared correctly when response middleware is called. """ self.middleware.process_request(self.request) # requestcontext should not be None. self.assertIsNotNone(get_template_request_context()) self.middleware.process_response(self.request, self.response) # requestcontext should be None. self.assertIsNone(get_template_request_context())
def test_clear_request_context_variable(self): """ Test the global variable requestcontext is cleared correctly when response middleware is called. """ self.middleware.process_request(self.request) # requestcontext should not be None. self.assertIsNotNone(get_template_request_context()) self.middleware.process_response(self.request, self.response) # requestcontext should be None. self.assertIsNone(get_template_request_context())
def render_to_string(template_name, dictionary, context=None, namespace='main'): # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link context_instance['is_any_marketing_link_set'] = is_any_marketing_link_set context_instance['is_marketing_link_set'] = is_marketing_link_set # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) if context: context_dictionary.update(context) # "Fix" CSRF token by evaluating the lazy object KEY_CSRF_TOKENS = ('csrf_token', 'csrf') for key in KEY_CSRF_TOKENS: if key in context_dictionary: context_dictionary[key] = unicode(context_dictionary[key]) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def render_to_string(template_name, dictionary, context=None, namespace='main'): # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) if context: context_dictionary.update(context) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def render_to_string(template_name, dictionary, context=None, namespace='main'): # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) if context: context_dictionary.update(context) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def render_to_string(template_name, dictionary, context=None, namespace='main'): # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link context_instance['is_any_marketing_link_set'] = is_any_marketing_link_set context_instance['is_marketing_link_set'] = is_marketing_link_set # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) if context: context_dictionary.update(context) # "Fix" CSRF token by evaluating the lazy object KEY_CSRF_TOKENS = ('csrf_token', 'csrf') for key in KEY_CSRF_TOKENS: if key in context_dictionary: context_dictionary[key] = unicode(context_dictionary[key]) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def render(self, context_instance): """ This takes a render call with a context (from Django) and translates it to a render call on the mako template. """ # collapse context_instance to a single dictionary for mako context_dictionary = {} # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) context_dictionary['settings'] = settings context_dictionary['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_dictionary['django_context'] = context_instance context_dictionary['marketing_link'] = marketing_link return super(Template, self).render_unicode(**context_dictionary)
def render(self, context_instance): """ This takes a render call with a context (from Django) and translates it to a render call on the mako template. """ # collapse context_instance to a single dictionary for mako context_dictionary = {} # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) context_dictionary['settings'] = settings context_dictionary['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_dictionary['django_context'] = context_instance context_dictionary['marketing_link'] = marketing_link return super(Template, self).render_unicode(**context_dictionary)