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 @@
+
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 @@
+
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("""\
+
+ """)
+ )
+ self.assertHTMLEqual(
+ comp.render(Context(comp.context(name="dynamic2"))),
+ dedent("""\
+
+ """)
+ )