diff --git a/tests/templates/svg_dynamic1.svg b/tests/templates/svg_dynamic1.svg new file mode 100644 index 00000000..40f15e8a --- /dev/null +++ b/tests/templates/svg_dynamic1.svg @@ -0,0 +1 @@ +Dynamic1 diff --git a/tests/templates/svg_dynamic2.svg b/tests/templates/svg_dynamic2.svg new file mode 100644 index 00000000..7cd67836 --- /dev/null +++ b/tests/templates/svg_dynamic2.svg @@ -0,0 +1 @@ +Dynamic2 diff --git a/tests/test_component.py b/tests/test_component.py index 9441582a..c0cc0011 100644 --- a/tests/test_component.py +++ b/tests/test_component.py @@ -75,3 +75,25 @@ class ComponentRegistryTest(SimpleTestCase): Var1: test1 Var2 (uppercased): TEST2 """).lstrip()) + + def test_component_with_dynamic_template(self): + class SvgComponent(component.Component): + def context(self, name, css_class="", title="", **attrs): + return {"name": name, "css_class": css_class, "title": title, **attrs} + + def template(self, context): + return f"svg_{context['name']}.svg" + + comp = SvgComponent("svg_component") + self.assertHTMLEqual( + comp.render(Context(comp.context(name="dynamic1"))), + dedent("""\ + Dynamic1 + """) + ) + self.assertHTMLEqual( + comp.render(Context(comp.context(name="dynamic2"))), + dedent("""\ + Dynamic2 + """) + )