Exemplo n.º 1
0
    def test_validator_element_invalid(self):
        """
            If a validator references an invalid element, then we don't let
            that exception propogate
        """
        f = Form('f')

        def validator(form):
            f.elements.f1.value

        f.add_text('f1', 'f1', maxlength=1)
        f.add_text('f2', 'f2')
        f.add_validator(validator)
        f.set_submitted({'f-submit-flag': 'submitted', 'f1': '12'})
        assert not f.is_valid()
Exemplo n.º 2
0
    def test_all_errors(self):
        def validator(form):
            if form.elements.myfield.is_valid():
                if form.elements.myfield.value != 'foo':
                    raise ValueInvalid('My Field: must be "foo", not "%s"' %
                                       form.elements.myfield.value)

        f1 = Form('login1')
        f1.add_text('field', 'Field', required=True)
        f1.add_text('myfield', 'My Field', required=True)
        f1.add_validator(validator)

        post = {'login1-submit-flag': 'submitted', 'myfield': 'bar'}
        f1.set_submitted(post)
        assert not f1.is_valid()

        form_errors, field_errors = f1.all_errors()
        self.assertEqual(field_errors, {'Field': ['field is required']})
        self.assertEqual(form_errors, ['My Field: must be "foo", not "bar"'])

        # now make sure we can set the id as the field errors dict key if needed
        form_errors, field_errors = f1.all_errors(id_as_key=True)
        self.assertEqual(field_errors, {'field': ['field is required']})
Exemplo n.º 3
0
    def test_form_validators(self):
        def validator(form):
            if form.elements.myfield.is_valid():
                if form.elements.myfield.value != 'foo':
                    raise ValueInvalid('My Field: must be "foo", not "%s"' %
                                       form.elements.myfield.value)

        f = Form('f')
        f.add_text('myfield', 'My Field')
        f.add_validator(validator)
        f.set_submitted({'f-submit-flag': 'submitted', 'myfield': 'bar'})
        assert not f.is_valid()
        self.assertEqual(f._errors[0], 'My Field: must be "foo", not "bar"')
        f.set_submitted({'f-submit-flag': 'submitted', 'myfield': 'foo'})
        assert f.is_valid()
        assert len(f._errors) == 0

        # custom message
        f = Form('f')
        f.add_text('myfield', 'My Field')
        f.add_validator(validator, 'value incorrect')
        f.set_submitted({'f-submit-flag': 'submitted', 'myfield': 'bar'})
        assert not f.is_valid()
        self.assertEqual(f._errors[0], 'value incorrect')
Exemplo n.º 4
0
 def test_validator_fe_instance(self):
     form = Form('f')
     form.add_text('units', 'Units')
     form.add_validator(Int())
     assert isinstance(form._validators[0][0], Int)