From 475bc8720f8efa98012e45c663cb3db5d5816bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emil=20Stenstr=C3=B6m?= Date: Sat, 20 Feb 2021 10:04:10 +0100 Subject: [PATCH] Add tests for components with dynamic template. --- tests/templates/svg_dynamic1.svg | 1 + tests/templates/svg_dynamic2.svg | 1 + tests/test_component.py | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 tests/templates/svg_dynamic1.svg create mode 100644 tests/templates/svg_dynamic2.svg 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 + """) + )