diff --git a/tests/test_templatetags.py b/tests/test_templatetags.py
index 0e554037..c18ec96e 100644
--- a/tests/test_templatetags.py
+++ b/tests/test_templatetags.py
@@ -1,3 +1,4 @@
+import re
from textwrap import dedent
from django.template import Context, Template, TemplateSyntaxError
@@ -62,92 +63,115 @@ class ComponentTemplateTagTest(SimpleTestCase):
# NOTE: component.registry is global, so need to clear before each test
component.registry.clear()
+ def inline_to_block(self, tag):
+ return re.sub(
+ r"({% component (.*) %})",
+ r"{% component_block \2 %}{% endcomponent_block %}",
+ tag,
+ )
+
def test_single_component(self):
component.registry.register(name="test", component=SimpleComponent)
- template = Template(
- '{% load component_tags %}{% component name="test" variable="variable" %}'
- )
- rendered = template.render(Context({}))
- self.assertHTMLEqual(rendered, "Variable: variable\n")
+ simple_tag_tempate = '{% load component_tags %}{% component name="test" variable="variable" %}'
+ block_tag_template = self.inline_to_block(simple_tag_tempate)
+
+ for tag in [simple_tag_tempate, block_tag_template]:
+ template = Template(tag)
+ rendered = template.render(Context({}))
+ self.assertHTMLEqual(
+ rendered, "Variable: variable\n"
+ )
def test_call_with_invalid_name(self):
- # Note: No component registered
+ # Note: No tag registered
- template = Template(
- '{% load component_tags %}{% component name="test" variable="variable" %}'
- )
- with self.assertRaises(
- django_components.component_registry.NotRegistered
- ):
- template.render(Context({}))
+ simple_tag_tempate = '{% load component_tags %}{% component name="test" variable="variable" %}'
+ block_tag_template = self.inline_to_block(simple_tag_tempate)
- def test_single_component_positional_name(self):
- component.registry.register(name="test", component=SimpleComponent)
-
- template = Template(
- '{% load component_tags %}{% component "test" variable="variable" %}'
- )
- rendered = template.render(Context({}))
- self.assertHTMLEqual(rendered, "Variable: variable\n")
-
- def test_call_component_with_two_variables(self):
- component.registry.register(name="test", component=IffedComponent)
-
- template = Template(
- "{% load component_tags %}"
- '{% component name="test" variable="variable" variable2="hej" %}'
- )
- rendered = template.render(Context({}))
- expected_outcome = (
- """Variable: variable\n"""
- """Variable2: hej"""
- )
- self.assertHTMLEqual(rendered, dedent(expected_outcome))
+ for tag in [simple_tag_tempate, block_tag_template]:
+ template = Template(tag)
+ with self.assertRaises(
+ django_components.component_registry.NotRegistered
+ ):
+ template.render(Context({}))
def test_component_called_with_positional_name(self):
component.registry.register(name="test", component=SimpleComponent)
- template = Template(
- '{% load component_tags %}{% component "test" variable="variable" %}'
- )
- rendered = template.render(Context({}))
- self.assertHTMLEqual(rendered, "Variable: variable\n")
+ simple_tag_tempate = '{% load component_tags %}{% component "test" variable="variable" %}'
+ block_tag_template = self.inline_to_block(simple_tag_tempate)
+
+ for tag in [simple_tag_tempate, block_tag_template]:
+ template = Template(tag)
+ rendered = template.render(Context({}))
+ self.assertHTMLEqual(
+ rendered, "Variable: variable\n"
+ )
+
+ def test_call_component_with_two_variables(self):
+ component.registry.register(name="test", component=IffedComponent)
+
+ simple_tag_tempate = """
+ {% load component_tags %}
+ {% component name="test" variable="variable" variable2="hej" %}
+ """
+ block_tag_template = self.inline_to_block(simple_tag_tempate)
+
+ for tag in [simple_tag_tempate, block_tag_template]:
+ template = Template(tag)
+ rendered = template.render(Context({}))
+ expected_outcome = (
+ """Variable: variable\n"""
+ """Variable2: hej"""
+ )
+ self.assertHTMLEqual(rendered, dedent(expected_outcome))
def test_component_called_with_singlequoted_name(self):
component.registry.register(name="test", component=SimpleComponent)
- template = Template(
- "{% load component_tags %}{% component 'test' variable=\"variable\" %}"
- )
- rendered = template.render(Context({}))
- self.assertHTMLEqual(rendered, "Variable: variable\n")
+ simple_tag_tempate = """{% load component_tags %}{% component 'test' variable="variable" %}"""
+ block_tag_template = self.inline_to_block(simple_tag_tempate)
+
+ for tag in [simple_tag_tempate, block_tag_template]:
+ template = Template(tag)
+ rendered = template.render(Context({}))
+ self.assertHTMLEqual(
+ rendered, "Variable: variable\n"
+ )
def test_component_called_with_variable_as_name(self):
component.registry.register(name="test", component=SimpleComponent)
- template = Template(
- """
+ simple_tag_tempate = """
{% load component_tags %}
{% with component_name="test" %}
{% component component_name variable="variable" %}
{% endwith %}
"""
- )
- rendered = template.render(Context({}))
- self.assertHTMLEqual(rendered, "Variable: variable\n")
+ block_tag_template = self.inline_to_block(simple_tag_tempate)
+
+ for tag in [simple_tag_tempate, block_tag_template]:
+ template = Template(tag)
+ rendered = template.render(Context({}))
+ self.assertHTMLEqual(
+ rendered, "Variable: variable\n"
+ )
def test_component_called_with_invalid_variable_as_name(self):
component.registry.register(name="test", component=SimpleComponent)
- template = Template(
- """
+ simple_tag_tempate = """
{% load component_tags %}
{% with component_name="BLAHONGA" %}
{% component component_name variable="variable" %}
{% endwith %}
"""
- )
+ block_tag_template = self.inline_to_block(simple_tag_tempate)
+
+ for tag in [simple_tag_tempate, block_tag_template]:
+ template = Template(tag)
+
with self.assertRaises(
django_components.component_registry.NotRegistered
):