Esempio n. 1
0
    def test_error_and_help_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = False
        form.helper.help_text_inline = True
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that help goes before error, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            help_position = html.find(
                '<span id="hint_id_email" class="help-inline">')
            error_position = html.find(
                '<p id="error_1_id_email" class="help-block">')
            self.assertTrue(help_position < error_position)

        # Viceversa
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = True
        form.helper.help_text_inline = False
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that error goes before help, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            error_position = html.find(
                '<span id="error_1_id_email" class="help-inline">')
            help_position = html.find(
                '<p id="hint_id_email" class="help-block">')
            self.assertTrue(error_position < help_position)
Esempio n. 2
0
    def test_error_and_help_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = False
        form.helper.help_text_inline = True
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that help goes before error, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            help_position = html.find('<span id="hint_id_email" class="help-inline">')
            error_position = html.find('<p id="error_1_id_email" class="help-block">')
            self.assertTrue(help_position < error_position)

        # Viceversa
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = True
        form.helper.help_text_inline = False
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that error goes before help, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            error_position = html.find('<span id="error_1_id_email" class="help-inline">')
            help_position = html.find('<p id="hint_id_email" class="help-block">')
            self.assertTrue(error_position < help_position)
Esempio n. 3
0
    def test_error_text_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        layout = Layout(
            AppendedText('first_name', 'wat'),
            PrependedText('email', '@'),
            AppendedPrependedText('last_name', '@', 'wat'),
        )
        form.helper.layout = layout
        form.is_valid()
        html = render_crispy_form(form)

        matches = re.findall('<span id="error_\d_\w*" class="help-inline"',
                             html, re.MULTILINE)
        self.assertEqual(len(matches), 3)

        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.layout = layout
        form.helper.error_text_inline = False
        html = render_crispy_form(form)

        matches = re.findall('<p id="error_\d_\w*" class="help-block"', html,
                             re.MULTILINE)
        self.assertEqual(len(matches), 3)
Esempio n. 4
0
    def test_html5_required(self):
        form = TestForm()
        form.helper = FormHelper()
        form.helper.html5_required = True
        html = render_crispy_form(form)
        # 6 out of 7 fields are required and an extra one for the SplitDateTimeWidget makes 7.
        self.assertEqual(html.count('required="required"'), 7)

        form = TestForm()
        form.helper = FormHelper()
        form.helper.html5_required = False
        html = render_crispy_form(form)
Esempio n. 5
0
    def test_html5_required(self):
        form = TestForm()
        form.helper = FormHelper()
        form.helper.html5_required = True
        html = render_crispy_form(form)
        # 6 out of 7 fields are required and an extra one for the SplitDateTimeWidget makes 7.
        self.assertEqual(html.count('required="required"'), 7)

        form = TestForm()
        form.helper = FormHelper()
        form.helper.html5_required = False
        html = render_crispy_form(form)
Esempio n. 6
0
    def test_multiwidget_field(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy form %}
        """)

        test_form = TestForm()
        test_form.helper = FormHelper()
        test_form.helper.layout = Layout(
            MultiWidgetField('datetime_field',
                             attrs=({
                                 'rel': 'test_dateinput'
                             }, {
                                 'rel': 'test_timeinput',
                                 'style': 'width: 30px;',
                                 'type': "hidden"
                             })))

        c = Context({'form': test_form})

        html = template.render(c)
        self.assertEqual(html.count('class="dateinput"'), 1)
        self.assertEqual(html.count('rel="test_dateinput"'), 1)
        self.assertEqual(html.count('rel="test_timeinput"'), 1)
        self.assertEqual(html.count('style="width: 30px;"'), 1)
        self.assertEqual(html.count('type="hidden"'), 1)
Esempio n. 7
0
    def test_appended_prepended_text(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy test_form %}
        """)

        test_form = TestForm()
        test_form.helper = FormHelper()
        test_form.helper.layout = Layout(
            AppendedPrependedText('email', '@', 'gmail.com'),
            AppendedText('password1', '#'),
            PrependedText('password2', '$'),
        )

        c = Context({
            'test_form': test_form,
        })
        html = template.render(c)

        # Check form parameters
        self.assertEqual(html.count('<span class="add-on ">@</span>'), 1)
        self.assertEqual(html.count('<span class="add-on ">gmail.com</span>'),
                         1)
        self.assertEqual(html.count('<span class="add-on ">#</span>'), 1)
        self.assertEqual(html.count('<span class="add-on ">$</span>'), 1)
Esempio n. 8
0
    def test_form_show_errors_non_field_errors(self):
        form = TestForm({"password1": "wargame", "password2": "god"})
        form.helper = FormHelper()
        form.helper.form_show_errors = True
        form.is_valid()

        template = get_template_from_string(
            u"""
            {% load crispy_forms_tags %}
            {% crispy testForm %}
        """
        )

        # First we render with errors
        c = Context({"testForm": form})
        html = template.render(c)

        # Ensure those errors were rendered
        self.assertTrue("<li>Passwords dont match</li>" in html)
        self.assertTrue(unicode(_("This field is required.")) in html)
        self.assertTrue("error" in html)

        # Now we render without errors
        form.helper.form_show_errors = False
        c = Context({"testForm": form})
        html = template.render(c)

        # Ensure errors were not rendered
        self.assertFalse("<li>Passwords dont match</li>" in html)
        self.assertFalse(unicode(_("This field is required.")) in html)
        self.assertFalse("error" in html)
Esempio n. 9
0
    def test_form_show_errors_non_field_errors(self):
        form = TestForm({'password1': 'wargame', 'password2': 'god'})
        form.helper = FormHelper()
        form.helper.form_show_errors = True
        form.is_valid()

        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy testForm %}
        """)

        # First we render with errors
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure those errors were rendered
        self.assertTrue('<li>Passwords dont match</li>' in html)
        self.assertTrue(unicode(_('This field is required.')) in html)
        self.assertTrue('error' in html)

        # Now we render without errors
        form.helper.form_show_errors = False
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure errors were not rendered
        self.assertFalse('<li>Passwords dont match</li>' in html)
        self.assertFalse(unicode(_('This field is required.')) in html)
        self.assertFalse('error' in html)
Esempio n. 10
0
    def test_multiwidget_field(self):
        template = get_template_from_string(
            u"""
            {% load crispy_forms_tags %}
            {% crispy form %}
        """
        )

        test_form = TestForm()
        test_form.helper = FormHelper()
        test_form.helper.layout = Layout(
            MultiWidgetField(
                "datetime_field",
                attrs=({"rel": "test_dateinput"}, {"rel": "test_timeinput", "style": "width: 30px;", "type": "hidden"}),
            )
        )

        c = Context({"form": test_form})

        html = template.render(c)
        self.assertEqual(html.count('class="dateinput"'), 1)
        self.assertEqual(html.count('rel="test_dateinput"'), 1)
        self.assertEqual(html.count('rel="test_timeinput"'), 1)
        self.assertEqual(html.count('style="width: 30px;"'), 1)
        self.assertEqual(html.count('type="hidden"'), 1)
Esempio n. 11
0
    def test_multiwidget_field(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy form %}
        """)

        test_form = TestForm()
        test_form.helper = FormHelper()
        test_form.helper.layout = Layout(
            MultiWidgetField(
                'datetime_field',
                attrs=(
                    {'rel': 'test_dateinput'},
                    {'rel': 'test_timeinput', 'style': 'width: 30px;', 'type': "hidden"}
                )
            )
        )

        c = Context({'form': test_form})

        html = template.render(c)
        self.assertEqual(html.count('class="dateinput"'), 1)
        self.assertEqual(html.count('rel="test_dateinput"'), 1)
        self.assertEqual(html.count('rel="test_timeinput"'), 1)
        self.assertEqual(html.count('style="width: 30px;"'), 1)
        self.assertEqual(html.count('type="hidden"'), 1)
Esempio n. 12
0
    def test_field_with_buttons(self):
        form = TestForm()
        form.helper = FormHelper()
        form.helper.layout = Layout(
            FieldWithButtons(
                Field("password1", css_class="span4"),
                StrictButton("Go!", css_id="go-button"),
                StrictButton("No!", css_class="extra"),
                StrictButton("Test", type="submit", name="whatever", value="something"),
                css_class="extra",
                autocomplete="off",
            )
        )
        html = render_crispy_form(form)
        self.assertEqual(html.count('class="control-group extra"'), 1)
        self.assertEqual(html.count('autocomplete="off"'), 1)
        self.assertEqual(html.count('class="input-append"'), 1)
        self.assertEqual(html.count('class="span4'), 1)
        self.assertEqual(html.count('id="go-button"'), 1)
        self.assertEqual(html.count("Go!"), 1)
        self.assertEqual(html.count("No!"), 1)
        self.assertEqual(html.count('class="btn"'), 2)
        self.assertEqual(html.count('class="btn extra"'), 1)
        self.assertEqual(html.count('type="submit"'), 1)
        self.assertEqual(html.count('name="whatever"'), 1)
        self.assertEqual(html.count('value="something"'), 1)

        if settings.CRISPY_TEMPLATE_PACK == "bootstrap":
            # Make sure white spaces between buttons are there in bootstrap
            self.assertEqual(len(re.findall(r"</button> <", html)), 3)
Esempio n. 13
0
    def test_form_show_errors_non_field_errors(self):
        form = TestForm({'password1': 'wargame', 'password2': 'god'})
        form.helper = FormHelper()
        form.helper.form_show_errors = True
        form.is_valid()

        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy testForm %}
        """)

        # First we render with errors
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure those errors were rendered
        self.assertTrue('<li>Passwords dont match</li>' in html)
        self.assertTrue(unicode(_('This field is required.')) in html)
        self.assertTrue('error' in html)

        # Now we render without errors
        form.helper.form_show_errors = False
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure errors were not rendered
        self.assertFalse('<li>Passwords dont match</li>' in html)
        self.assertFalse(unicode(_('This field is required.')) in html)
        self.assertFalse('error' in html)
Esempio n. 14
0
    def test_form_show_errors(self):
        form = TestForm(
            {
                "email": "invalidemail",
                "first_name": "first_name_too_long",
                "last_name": "last_name_too_long",
                "password1": "yes",
                "password2": "yes",
            }
        )
        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText("email", "whatever"),
            PrependedText("first_name", "blabla"),
            AppendedPrependedText("last_name", "foo", "bar"),
            MultiField("legend", "password1", "password2"),
        )
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 6)

        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 0)
Esempio n. 15
0
 def test_getitem_by_field_name(self):
     form = TestForm()
     form.helper = FormHelper(form)
     layout = Layout(Div("email"), "password1")
     form.helper.layout = layout
     form.helper["email"].wrap(Field, css_class="hero")
     self.assertTrue(isinstance(layout.fields[0].fields[0], Field))
Esempio n. 16
0
 def test_filter_by_widget(self):
     form = TestForm()
     form.helper = FormHelper(form)
     form.helper.layout = self.advanced_layout
     self.assertEqual(form.helper.filter_by_widget(forms.PasswordInput).slice, [
         [[0, 1, 0, 0], 'password1'],
         [[0, 4, 0], 'password2'],
     ])
Esempio n. 17
0
 def test_filter_by_widget(self):
     form = TestForm()
     form.helper = FormHelper(form)
     layout = Layout(Div(Div(Div('email')), Div('password1'), 'password2'))
     form.helper.layout = layout
     form.helper.filter_by_widget(forms.PasswordInput).wrap(
         Field, css_class='hero')
     self.assertTrue(isinstance(layout.fields[0].fields[2], Field))
Esempio n. 18
0
 def test_filter_by_widget(self):
     form = TestForm()
     form.helper = FormHelper(form)
     form.helper.layout = self.advanced_layout
     self.assertEqual(form.helper.filter_by_widget(forms.PasswordInput).slice, [
         [[0, 1, 0, 0], 'password1'],
         [[0, 4, 0], 'password2'],
     ])
Esempio n. 19
0
    def test_attrs(self):
        form = TestForm()
        form.helper = FormHelper()
        form.helper.attrs = {'id': 'TestIdForm', 'autocomplete': "off"}
        html = render_crispy_form(form)

        self.assertTrue('autocomplete="off"' in html)
        self.assertTrue('id="TestIdForm"' in html)
Esempio n. 20
0
    def test_attrs(self):
        form = TestForm()
        form.helper = FormHelper()
        form.helper.attrs = {'id': 'TestIdForm', 'autocomplete': "off"}
        html = render_crispy_form(form)

        self.assertTrue('autocomplete="off"' in html)
        self.assertTrue('id="TestIdForm"' in html)
Esempio n. 21
0
 def test_exclude_by_widget(self):
     form = TestForm()
     form.helper = FormHelper(form)
     form.helper.layout = self.advanced_layout
     self.assertEqual(
         form.helper.exclude_by_widget(forms.PasswordInput).slice,
         [[[0, 0, 0, 0], "email"], [[0, 3, 0], "first_name"], [[1], "last_name"]],
     )
Esempio n. 22
0
 def test_exclude_by_widget(self):
     form = TestForm()
     form.helper = FormHelper(form)
     form.helper.layout = self.advanced_layout
     self.assertEqual(form.helper.exclude_by_widget(forms.PasswordInput).slice, [
         [[0, 0, 0, 0], 'email'],
         [[0, 3, 0], 'first_name'],
         [[1], 'last_name'],
     ])
Esempio n. 23
0
 def test_getitem_by_field_name(self):
     form = TestForm()
     form.helper = FormHelper(form)
     layout = Layout(
         Div('email'),
         'password1',
     )
     form.helper.layout = layout
     form.helper['email'].wrap(Field, css_class='hero')
     self.assertTrue(isinstance(layout.fields[0].fields[0], Field))
Esempio n. 24
0
 def test_getitem_by_field_name(self):
     form = TestForm()
     form.helper = FormHelper(form)
     layout = Layout(
         Div('email'),
         'password1',
     )
     form.helper.layout = layout
     form.helper['email'].wrap(Field, css_class='hero')
     self.assertTrue(isinstance(layout.fields[0].fields[0], Field))
Esempio n. 25
0
 def test_filter_by_widget(self):
     form = TestForm()
     form.helper = FormHelper(form)
     layout = Layout(
         Div(
             Div(Div('email')),
             Div('password1'),
             'password2'
         )
     )
     form.helper.layout = layout
     form.helper.filter_by_widget(forms.PasswordInput).wrap(Field, css_class='hero')
     self.assertTrue(isinstance(layout.fields[0].fields[2], Field))
Esempio n. 26
0
 def test_exclude_by_widget_and_wrap(self):
     form = TestForm()
     form.helper = FormHelper(form)
     form.helper.layout = self.advanced_layout
     form.helper.exclude_by_widget(forms.PasswordInput).wrap(Field, css_class='hero')
     # Check wrapped fields
     self.assertTrue(isinstance(form.helper.layout[0][0][0][0], Field))
     self.assertTrue(isinstance(form.helper.layout[0][3][0], Field))
     self.assertTrue(isinstance(form.helper.layout[1], Field))
     # Check others stay the same
     self.assertTrue(isinstance(form.helper.layout[0][3][1], HTML))
     self.assertTrue(isinstance(form.helper.layout[0][1][0][0], basestring))
     self.assertTrue(isinstance(form.helper.layout[0][4][0], basestring))
Esempio n. 27
0
 def test_exclude_by_widget_and_wrap(self):
     form = TestForm()
     form.helper = FormHelper(form)
     form.helper.layout = self.advanced_layout
     form.helper.exclude_by_widget(forms.PasswordInput).wrap(Field, css_class='hero')
     # Check wrapped fields
     self.assertTrue(isinstance(form.helper.layout[0][0][0][0], Field))
     self.assertTrue(isinstance(form.helper.layout[0][3][0], Field))
     self.assertTrue(isinstance(form.helper.layout[1], Field))
     # Check others stay the same
     self.assertTrue(isinstance(form.helper.layout[0][3][1], HTML))
     self.assertTrue(isinstance(form.helper.layout[0][1][0][0], basestring))
     self.assertTrue(isinstance(form.helper.layout[0][4][0], basestring))
Esempio n. 28
0
    def test_i18n(self):
        template = get_template_from_string(
            u"""
            {% load crispy_forms_tags %}
            {% crispy form form.helper %}
        """
        )
        form = TestForm()
        form_helper = FormHelper()
        form_helper.layout = Layout(HTML(_("i18n text")), Fieldset(_("i18n legend"), "first_name", "last_name"))
        form.helper = form_helper

        html = template.render(Context({"form": form}))
        self.assertEqual(html.count("i18n legend"), 1)
Esempio n. 29
0
    def test_error_text_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        layout = Layout(
            AppendedText('first_name', 'wat'),
            PrependedText('email', '@'),
            AppendedPrependedText('last_name', '@', 'wat'),
        )
        form.helper.layout = layout
        form.is_valid()
        html = render_crispy_form(form)

        matches = re.findall('<span id="error_\d_\w*" class="help-inline"', html, re.MULTILINE)
        self.assertEqual(len(matches), 3)

        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.layout = layout
        form.helper.error_text_inline = False
        html = render_crispy_form(form)

        matches = re.findall('<p id="error_\d_\w*" class="help-block"', html, re.MULTILINE)
        self.assertEqual(len(matches), 3)
Esempio n. 30
0
    def test_hidden_fields(self):
        form = TestForm()
        # All fields fake hidden
        for field in form.fields:
            form[field].field.widget.is_hidden = True

        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText('password1', 'foo'),
            PrependedText('password2', 'bar'),
            AppendedPrependedText('email', 'bar'),
            InlineCheckboxes('first_name'),
        )
        html = render_crispy_form(form)
        self.assertEqual(html.count("<input"), 4)
Esempio n. 31
0
    def test_multifield_errors(self):
        form = TestForm({"email": "invalidemail", "password1": "yes", "password2": "yes"})
        form.helper = FormHelper()
        form.helper.layout = Layout(MultiField("legend", "email"))
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 3)

        # Reset layout for avoiding side effects
        form.helper.layout = Layout(MultiField("legend", "email"))
        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 0)
Esempio n. 32
0
    def test_hidden_fields(self):
        form = TestForm()
        # All fields fake hidden
        for field in form.fields:
            form[field].field.widget.is_hidden = True

        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText('password1', 'foo'),
            PrependedText('password2', 'bar'),
            AppendedPrependedText('email', 'bar'),
            InlineCheckboxes('first_name'),
        )
        html = render_crispy_form(form)
        self.assertEqual(html.count("<input"), 4)
Esempio n. 33
0
    def test_hidden_fields(self):
        form = TestForm()
        # All fields hidden
        for field in form.fields:
            form.fields[field].widget = forms.HiddenInput()

        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText("password1", "foo"),
            PrependedText("password2", "bar"),
            AppendedPrependedText("email", "bar"),
            InlineCheckboxes("first_name"),
            InlineRadios("last_name"),
        )
        html = render_crispy_form(form)
        self.assertEqual(html.count("<input"), 5)
        self.assertEqual(html.count('type="hidden"'), 5)
Esempio n. 34
0
    def test_i18n(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy form form.helper %}
        """)
        form = TestForm()
        form_helper = FormHelper()
        form_helper.layout = Layout(
            HTML(_("i18n text")),
            Fieldset(
                _("i18n legend"),
                'first_name',
                'last_name',
            ))
        form.helper = form_helper

        html = template.render(Context({'form': form}))
        self.assertEqual(html.count('i18n legend'), 1)
Esempio n. 35
0
    def test_field_type_hidden(self):
        template = get_template_from_string(
            u"""
            {% load crispy_forms_tags %}
            {% crispy test_form %}
        """
        )

        test_form = TestForm()
        test_form.helper = FormHelper()
        test_form.helper.layout = Layout(Field("email", type="hidden", data_mierda=12), Field("datetime_field"))

        c = Context({"test_form": test_form})
        html = template.render(c)

        # Check form parameters
        self.assertEqual(html.count('<input type="hidden" data-mierda="12" name="email"'), 1)
        self.assertEqual(html.count('class="dateinput"'), 1)
        self.assertEqual(html.count('class="timeinput"'), 1)
Esempio n. 36
0
 def test_field_with_buttons(self):
     form = TestForm()
     form.helper = FormHelper()
     form.helper.layout = Layout(
         FieldWithButtons(
             'password1',
             StrictButton("Go!", css_id="go-button"),
             StrictButton("No!", css_class="extra"),
             StrictButton("Test", type="submit", name="whatever", value="something")
         )
     )
     html = render_crispy_form(form)
     self.assertEqual(html.count('class="control-group"'), 1)
     self.assertEqual(html.count('class="input-append"'), 1)
     self.assertEqual(html.count('id="go-button"'), 1)
     self.assertEqual(html.count("Go!"), 1)
     self.assertEqual(html.count("No!"), 1)
     self.assertEqual(html.count('class="btn"'), 2)
     self.assertEqual(html.count('class="btn extra"'), 1)
     self.assertEqual(html.count('type="submit"'), 1)
     self.assertEqual(html.count('name="whatever"'), 1)
     self.assertEqual(html.count('value="something"'), 1)
Esempio n. 37
0
    def test_field_type_hidden(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy test_form %}
        """)


        test_form = TestForm()
        test_form.helper = FormHelper()
        test_form.helper.layout = Layout(
            Field('email', type="hidden", data_mierda=12),
            Field('datetime_field'),
        )

        c = Context({
            'test_form': test_form,
        })
        html = template.render(c)

        # Check form parameters
        self.assertEqual(html.count('<input type="hidden" data-mierda="12" name="email"'), 1)
        self.assertEqual(html.count('class="dateinput"'), 1)
        self.assertEqual(html.count('class="timeinput"'), 1)
Esempio n. 38
0
    def test_form_show_errors(self):
        form = TestForm({
            'email': 'invalidemail',
            'first_name': 'first_name_too_long',
            'last_name': 'last_name_too_long',
            'password1': 'yes',
            'password2': 'yes',
        })
        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText('email', 'whatever'),
            PrependedText('first_name', 'blabla'),
            AppendedPrependedText('last_name', 'foo', 'bar'),
        )
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 6)

        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 0)
Esempio n. 39
0
    def test_form_show_errors(self):
        form = TestForm({
            'email': 'invalidemail',
            'first_name': 'first_name_too_long',
            'last_name': 'last_name_too_long',
            'password1': 'yes',
            'password2': 'yes',
        })
        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText('email', 'whatever'),
            PrependedText('first_name', 'blabla'),
            AppendedPrependedText('last_name', 'foo', 'bar'),
        )
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 6)

        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 0)
Esempio n. 40
0
    def test_appended_prepended_text(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy test_form %}
        """)

        test_form = TestForm()
        test_form.helper = FormHelper()
        test_form.helper.layout = Layout(
            AppendedPrependedText('email', '@', 'gmail.com'),
            AppendedText('password1', '#'),
            PrependedText('password2', '$'),
        )

        c = Context({
            'test_form': test_form,
        })
        html = template.render(c)

        # Check form parameters
        self.assertEqual(html.count('<span class="add-on ">@</span>'), 1)
        self.assertEqual(html.count('<span class="add-on ">gmail.com</span>'), 1)
        self.assertEqual(html.count('<span class="add-on ">#</span>'), 1)
        self.assertEqual(html.count('<span class="add-on ">$</span>'), 1)
Esempio n. 41
0
 def test_all_without_layout(self):
     form = TestForm()
     form.helper = FormHelper()
     self.assertRaises(FormHelpersException, lambda: form.helper.all().wrap(Div))
Esempio n. 42
0
 def test_filter_by_widget_without_form(self):
     form = TestForm()
     form.helper = FormHelper()
     form.helper.layout = self.advanced_layout
     self.assertRaises(FormHelpersException, lambda: form.helper.filter_by_widget(forms.PasswordInput))