diff --git a/tests/test_templatetags.py b/tests/test_templatetags.py
index 115503d3..0e554037 100644
--- a/tests/test_templatetags.py
+++ b/tests/test_templatetags.py
@@ -2,6 +2,7 @@ from textwrap import dedent
from django.template import Context, Template, TemplateSyntaxError
+import django_components
from django_components import component
from .django_test_setup import * # NOQA
@@ -70,6 +71,17 @@ class ComponentTemplateTagTest(SimpleTestCase):
rendered = template.render(Context({}))
self.assertHTMLEqual(rendered, "Variable: variable\n")
+ def test_call_with_invalid_name(self):
+ # Note: No component registered
+
+ template = Template(
+ '{% load component_tags %}{% component name="test" variable="variable" %}'
+ )
+ with self.assertRaises(
+ django_components.component_registry.NotRegistered
+ ):
+ template.render(Context({}))
+
def test_single_component_positional_name(self):
component.registry.register(name="test", component=SimpleComponent)
@@ -111,6 +123,36 @@ class ComponentTemplateTagTest(SimpleTestCase):
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(
+ """
+ {% load component_tags %}
+ {% with component_name="test" %}
+ {% component component_name variable="variable" %}
+ {% endwith %}
+ """
+ )
+ 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(
+ """
+ {% load component_tags %}
+ {% with component_name="BLAHONGA" %}
+ {% component component_name variable="variable" %}
+ {% endwith %}
+ """
+ )
+ with self.assertRaises(
+ django_components.component_registry.NotRegistered
+ ):
+ template.render(Context({}))
+
class ComponentSlottedTemplateTagTest(SimpleTestCase):
def setUp(self):