def test_view_config_caches_into_context(rf): # This is a silly test... request = get_request(edit=False) with override_current_theme_class(None): (template, layout, gibberish, ctx) = get_test_template_bits(request) cfg1 = get_view_config(ctx) cfg2 = get_view_config(ctx) assert cfg1 is cfg2 (template, layout, gibberish, ctx) = get_test_template_bits(request, False) cfg1 = get_view_config(ctx) cfg2 = get_view_config(ctx) assert cfg1 is cfg2
def test_without_rc(): request = get_request() (template, layout, gibberish, ctx) = get_test_template_bits(request) assert not add_resource(ctx, "yes", "hello.js") content1 = "<html>" content2 = inject_resources(ctx, content1) assert content1 == content2
def test_layout_rendering_with_global_type(rf): request = get_request(edit=False) with override_current_theme_class(None): with plugin_override(): jeng = get_jinja2_engine() template = jeng.from_string("") (template, layout, gibberish, ctx) = get_test_template_bits(request) global_class = "xt-global-ph" result = six.text_type( render_placeholder(ctx, "test", layout, template.template.name, global_type=True)) assert global_class in result result = six.text_type( render_placeholder(ctx, "test", layout, template.template.name, global_type=False)) assert global_class not in result
def test_injecting_into_weird_places(): request = get_request() (template, layout, gibberish, ctx) = get_test_template_bits(request, **{ RESOURCE_CONTAINER_VAR_NAME: ResourceContainer() }) with pytest.raises(ValueError): add_resource(ctx, "yes", "hello.js")
def test_layout_edit_render(): request = get_request(edit=True) with override_current_theme_class(None): with plugin_override(): (template, layout, gibberish, ctx) = get_test_template_bits(request) result = six.text_type(render_placeholder(ctx, "test", layout, "test")) # Look for evidence of editing: assert "xt-ph-edit" in result assert "data-xt-placeholder-name" in result assert "data-xt-row" in result assert "data-xt-cell" in result
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)) assert container.render_resources("body_end") == "1+1=2.0(Error while rendering)"
def test_layout_rendering_with_global_type(rf): request = get_request(edit=False) with override_current_theme_class(None): with plugin_override(): jeng = get_jinja2_engine() template = jeng.from_string("") (template, layout, gibberish, ctx) = get_test_template_bits(request) global_class = "xt-global-ph" result = six.text_type(render_placeholder(ctx, "test", layout, template.template.name, global_type=True)) assert global_class in result result = six.text_type(render_placeholder(ctx, "test", layout, template.template.name, global_type=False)) assert global_class not in result
def test_layout_rendering(rf): request = get_request(edit=False) with override_current_theme_class(None): with plugin_override(): (template, layout, gibberish, ctx) = get_test_template_bits(request) result = six.text_type(render_placeholder(ctx, "test", layout, "test")) expect = """ <div class="xt-ph" id="xt-ph-test"> <div class="row xt-ph-row"> <div class="col-md-12 hidden-xs xt-ph-cell"><p>%s</p></div> </div> </div> """ % gibberish assert close_enough(result, expect)
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.)"