Add component_dependencies template tag.

This commit is contained in:
Emil Stenström 2015-06-14 14:29:20 +02:00
parent 33b1930ed5
commit 176574a9cc
3 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,12 @@
from django import template
from django_components.component import registry
register = template.Library()
@register.simple_tag(name="component_dependencies")
def component_dependencies_tag():
out = []
for comp in registry._registry.values():
out.append(comp.render_dependencies())
return "\n".join(out)

View file

@ -0,0 +1,27 @@
from textwrap import dedent
import unittest
from django.template import Template, Context
from django_components import component
from .django_test_setup import * # NOQA
class SimpleComponent(component.Component):
def context(self, variable=None):
return {
"variable": variable,
}
class Media:
template = "simple_template.html"
css = {"all": "style.css"}
js = ("script.js",)
class ComponentTemplateTagTest(unittest.TestCase):
def test_component_dependencies(self):
component.registry.register(name="testcomponent", component=SimpleComponent)
template = Template("{% load component_tags %}{% component_dependencies %}")
rendered = template.render(Context())
self.assertEqual(rendered, dedent("""
<link href="style.css" type="text/css" media="all" rel="stylesheet" />
<script type="text/javascript" src="script.js"></script>
""").strip())