From 69ff88bed286a76e6216a54ecf93a0b27d87bc8d Mon Sep 17 00:00:00 2001 From: David Smith <39445562+smithdc1@users.noreply.github.com> Date: Thu, 15 Dec 2022 08:01:04 +0000 Subject: [PATCH] Fixed tests for crispy-forms 2.x (#133) --- tests/templates/custom_field_template.html | 2 +- tests/templates/custom_form_template.html | 2 +- .../custom_form_template_with_context.html | 2 +- tests/test_layout.py | 14 ++++++++++++-- tests/test_layout_objects.py | 12 ++++++++++++ tox.ini | 2 -- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/tests/templates/custom_field_template.html b/tests/templates/custom_field_template.html index 4724226..04f0274 100644 --- a/tests/templates/custom_field_template.html +++ b/tests/templates/custom_field_template.html @@ -1,2 +1,2 @@

Special custom field

-{% include 'bootstrap/field.html' %} +{% include 'bootstrap5/field.html' %} diff --git a/tests/templates/custom_form_template.html b/tests/templates/custom_form_template.html index f2da757..c09b4c7 100644 --- a/tests/templates/custom_form_template.html +++ b/tests/templates/custom_form_template.html @@ -1,2 +1,2 @@

Special custom form

-{% include "bootstrap/whole_uni_form.html" %} +{% include "bootstrap5/whole_uni_form.html" %} diff --git a/tests/templates/custom_form_template_with_context.html b/tests/templates/custom_form_template_with_context.html index 2378296..477997a 100644 --- a/tests/templates/custom_form_template_with_context.html +++ b/tests/templates/custom_form_template_with_context.html @@ -1,4 +1,4 @@

Special custom form with context passthrough

Got prefix: {{ prefix }}. -{% include "bootstrap/whole_uni_form.html" %} +{% include "bootstrap5/whole_uni_form.html" %} Got suffix: {{ suffix }}. diff --git a/tests/test_layout.py b/tests/test_layout.py index 512facf..a2a72e8 100644 --- a/tests/test_layout.py +++ b/tests/test_layout.py @@ -16,6 +16,7 @@ from django.middleware.csrf import _get_new_csrf_string from django.shortcuts import render from django.template import Context, Template +from django.test import override_settings from django.urls import reverse from django.utils.translation import gettext_lazy as _ @@ -36,6 +37,12 @@ ) from .utils import contains_partial, parse_expected, parse_form +CONVERTERS = { + "textinput": "inputtext textinput textInput", + "fileinput": "fileinput fileUpload", + "passwordinput": "textinput textInput", +} + def test_invalid_unicode_characters(settings): # Adds a BooleanField that uses non valid unicode characters "ñ" @@ -331,6 +338,7 @@ def test_bs5_field_with_buttons_css_classes(): assert parse_form(form) == parse_expected("field_with_buttons_failing.html") +@override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_formset_layout(): SampleFormSet = formset_factory(SampleForm, extra=3) formset = SampleFormSet() @@ -523,6 +531,7 @@ def test_keepcontext_context_manager(): assert response.content.count(b"form-check-input") > 0 +@override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_bootstrap5_form_inline(): form = SampleForm() form.helper = FormHelper() @@ -557,7 +566,7 @@ def test_update_attributes_class(): form.helper.layout = Layout("email", Field("password1"), "password2") form.helper["password1"].update_attributes(css_class="hello") html = render_crispy_form(form) - assert html.count(' class="hello textinput') == 1 + assert html.count(' class="hello') == 1 form.helper = FormHelper() form.helper.layout = Layout( "email", @@ -566,7 +575,7 @@ def test_update_attributes_class(): ) form.helper["password1"].update_attributes(css_class="hello2") html = render_crispy_form(form) - assert html.count(' class="hello hello2 textinput') == 1 + assert html.count(' class="hello hello2') == 1 def test_file_field(): @@ -611,6 +620,7 @@ def test_html_label_escape(): assert "<>&" in html +@override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_tabular_formset_layout(): SampleFormSet = formset_factory(SampleForm, extra=3) formset = SampleFormSet() diff --git a/tests/test_layout_objects.py b/tests/test_layout_objects.py index b386c0b..0e3dde7 100644 --- a/tests/test_layout_objects.py +++ b/tests/test_layout_objects.py @@ -21,6 +21,7 @@ from crispy_forms.utils import render_crispy_form from django import forms from django.template import Context, Template +from django.test import override_settings from django.utils.translation import activate, deactivate from django.utils.translation import gettext as _ @@ -37,6 +38,12 @@ ) from .utils import parse_expected, parse_form +CONVERTERS = { + "textinput": "inputtext textinput textInput", + "fileinput": "fileinput fileUpload", + "passwordinput": "textinput textInput", +} + def test_field_with_custom_template(): test_form = SampleForm() @@ -202,6 +209,7 @@ def test_custom_django_widget(self): html = render_crispy_form(form) assert 'class="form-check-input"' in html + @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_prepended_appended_text(self): test_form = SampleForm() test_form.helper = FormHelper() @@ -223,6 +231,7 @@ def test_inline_radios(self): html = render_crispy_form(test_form) assert html.count('form-check-inline"') == 2 + @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_accordion_and_accordiongroup(self): random.seed(0) form = SampleForm() @@ -269,6 +278,7 @@ def test_accordion_active_false_not_rendered(self): == 0 ) + @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_bs5accordion(self): random.seed(0) form = SampleForm() @@ -315,6 +325,7 @@ def test_bs5accordion_active_false_not_rendered(self): == 0 ) + @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_bs5accordion_flush(self): random.seed(0) test_form = SampleForm() @@ -329,6 +340,7 @@ def test_bs5accordion_flush(self): ) assert parse_form(test_form) == parse_expected("accordion_flush.html") + @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) def test_bs5accordion_always_open(self): random.seed(0) test_form = SampleForm()