import pytest from django.template import Context, Template from pytest_django.asserts import assertHTMLEqual from django_components import registry, types from django_components.testing import djc_test # Imported lazily, so we import components only once settings are set def _create_form_components(): from docs.examples.form.component import Form, FormLabel # noqa: PLC0415 registry.register("form", Form) registry.register("form_label", FormLabel) @pytest.mark.django_db @djc_test class TestExampleForm: def test_render_simple_form(self): _create_form_components() template_str: types.django_html = """ {% load component_tags %} {% component "form" %} {% fill "field:project" %}{% endfill %} {% fill "field:option" %}{% endfill %} {% endcomponent %} """ template = Template(template_str) rendered = template.render(Context({})) assertHTMLEqual( rendered, """
""", ) def test_custom_label(self): _create_form_components() template_str: types.django_html = """ {% load component_tags %} {% component "form" %} {% fill "label:project" %}Custom Project Label{% endfill %} {% fill "field:project" %}{% endfill %} {% endcomponent %} """ template = Template(template_str) rendered = template.render(Context({})) assert "Custom Project Label" in rendered assert '