Beispiel #1
0
    def render(self, context):
        for location, __ in self.fields:
            if location in resources.KNOWN_LOCATIONS:
                resource = self.config.get(location, "")
                add_resource(context, location, JinjaMarkupResource(resource, context))

        in_place = self.config.get("in_place", "")
        if in_place:
            return JinjaMarkupResource(in_place, context).render()
Beispiel #2
0
 def render(self, context):
     add_resource(context, "body_start", "://example.com/js.js")
     add_resource(context, "body_start", "://foo/fuzz.png")
     add_resource(context, "head_end", "://example.com/css.css")
     add_resource(context, "body_end", InlineScriptResource("alert('xss')"))
     add_resource(context, "head_end", InlineScriptResource.from_vars("foos", {"bars": (1, 2, 3)}))
     add_resource(context, "head_end", InlineMarkupResource(self.meta_markup))
     add_resource(context, "head_end", InlineMarkupResource(self.meta_markup))  # Test duplicates
     add_resource(context, "head_end", "")  # Test the no-op branch
     add_resource(context, "content_start", InlineMarkupResource("START"))
     add_resource(context, "content_end", InlineMarkupResource("END"))
     add_resource(context, "content_end", InlineMarkupResource("END"))
     add_resource(context, "body_end", JinjaMarkupResource("1+1={{ 1+1 }}", context))
     return self.message
Beispiel #3
0
def test_jinja_resource():
    request = get_request()
    (template, layout, gibberish, context) = get_test_template_bits(request)
    assert JinjaMarkupResource("1+1={{ 1+1|float }}", context).render() == "1+1=2.0"
    assert JinjaMarkupResource("{{ 1|thisdoesnwork }}", context) == "(Error while rendering.)"
    assert JinjaMarkupResource("", context) == ""
    assert str(JinjaMarkupResource("1+1", context)) == "1+1"

    container = ResourceContainer()
    container.add_resource("body_end", JinjaMarkupResource("1+1={{ 1+1|float }}", context))
    container.add_resource("body_end", JinjaMarkupResource("{{ 1|thisdoesnwork }}", context))
    container.add_resource("body_end", JinjaMarkupResource("", context))
    rendered_resource = container._render_resource("://example.com/js.js?random_text")
    assert "unknown resource type" not in rendered_resource
    assert rendered_resource == '<script src="://example.com/js.js?random_text"></script>'
    assert container.render_resources("body_end") == "1+1=2.0(Error while rendering.)"