Skip to content

Commit 37900e8

Browse files
committed
Merge branch 'develop' of github.com:dyve/django-bootstrap3 into develop
* 'develop' of github.com:dyve/django-bootstrap3: Refactored tests for ShowAddonsTest. Fixes zostera#383.
2 parents 5c334a8 + 810c9f3 commit 37900e8

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

bootstrap3/renderers.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
ReadOnlyPasswordHashWidget = None
99

1010
from django.forms import (
11-
TextInput, DateInput, FileInput, CheckboxInput, MultiWidget,
12-
ClearableFileInput, Select, RadioSelect, CheckboxSelectMultiple
11+
TextInput, DateInput, FileInput, CheckboxInput, MultiWidget, ClearableFileInput,
12+
Select, RadioSelect, CheckboxSelectMultiple, NumberInput, EmailInput, URLInput
1313
)
1414
# Django 1.9 moved SelectDateWidget to django.forms.widget from
1515
# django.forms.extras. Django 2.0 will remove the old import location.
@@ -443,7 +443,8 @@ def wrap_widget(self, html):
443443
return html
444444

445445
def make_input_group(self, html):
446-
if (self.addon_before or self.addon_after) and isinstance(self.widget, (TextInput, DateInput, Select)):
446+
if (self.addon_before or self.addon_after) and isinstance(
447+
self.widget, (TextInput, NumberInput, EmailInput, URLInput, DateInput, Select)):
447448
before = '<span class="{input_class}">{addon}</span>'.format(
448449
input_class=self.addon_before_class, addon=self.addon_before) if self.addon_before else ''
449450
after = '<span class="{input_class}">{addon}</span>'.format(

bootstrap3/tests.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ class TestForm(forms.Form):
8888
widget=forms.CheckboxSelectMultiple,
8989
help_text='Check as many as you like.',
9090
)
91+
number = forms.FloatField()
92+
url = forms.URLField()
9193
addon = forms.CharField(
9294
widget=forms.TextInput(attrs={'addon_before': 'before', 'addon_after': 'after'}),
9395
)
@@ -715,3 +717,38 @@ class ShowPlaceholderTest(TestCase):
715717
def test_placeholder_set_from_label(self):
716718
res = render_form_field('sender')
717719
self.assertIn('placeholder="Sender © unicode"', res)
720+
721+
722+
class ShowAddonsTest(TestCase):
723+
724+
def assertFieldHasAddons(self, field):
725+
"""Asserts that a given field has an after and before addon."""
726+
addon_before = "bf"
727+
addon_after = "af"
728+
729+
res = render_template_with_form(
730+
'{{% bootstrap_field form.{0} addon_before="{1}" addon_after="{2}" %}}'.format(
731+
field, addon_before, addon_after)
732+
)
733+
734+
self.assertIn('class="input-group"', res)
735+
self.assertIn('class="input-group-addon">{0}'.format(addon_before), res)
736+
self.assertIn('class="input-group-addon">{0}'.format(addon_after), res)
737+
738+
def test_show_addons_textinput(self):
739+
self.assertFieldHasAddons("subject")
740+
741+
def test_show_addons_select(self):
742+
self.assertFieldHasAddons("select1")
743+
744+
def test_show_addons_dateinput(self):
745+
self.assertFieldHasAddons("date")
746+
747+
def test_show_addons_email(self):
748+
self.assertFieldHasAddons("sender")
749+
750+
def test_show_addons_number(self):
751+
self.assertFieldHasAddons("number")
752+
753+
def test_show_addons_url(self):
754+
self.assertFieldHasAddons("url")

0 commit comments

Comments
 (0)