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()