Exemple #1
0
class TestInheritedForm(unittest.TestCase):
    def setUp(self):
        tree = load(os.path.join(test_dir, 'inherited.xml'))
        config = Config(tree)
        form_config = config.get_form('customform')
        self.form = Form(form_config)

    def test_form_init(self):
        pass

    def test_string_field(self):
        field = self.form.get_field("string")
        self.assertEqual(field.label, "Inherited String field")

    def test_form_fields(self):
        self.assertEqual(len(self.form.fields.values()), 10)
Exemple #2
0
class TestInheritedForm(unittest.TestCase):

    def setUp(self):
        tree = load(os.path.join(test_dir, 'inherited.xml'))
        config = Config(tree)
        form_config = config.get_form('customform')
        self.form = Form(form_config)

    def test_form_init(self):
        pass

    def test_string_field(self):
        field = self.form.get_field("string")
        self.assertEqual(field.label, "Inherited String field")

    def test_form_fields(self):
        self.assertEqual(len(self.form.fields.values()), 10)
Exemple #3
0
class TestFormValidation(unittest.TestCase):

    def setUp(self):
        tree = load(os.path.join(test_dir, 'form.xml'))
        config = Config(tree)
        form_config = config.get_form('customform')
        self.form = Form(form_config)

    def test_form_init(self):
        pass

    def test_form_unknown_field(self):
        values = {'unknown': 'test', 'integer': '15', 'date': '1998-02-01'}
        self.form.validate(values)
        # Check that the unknown field has been filtered out as it was
        # not part of the form.
        self.assertEqual(self.form.data.has_key('unknown'), False)

    def test_form_validate_fail(self):
        values = {'default': 'test', 'integer': '15', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), False)

    def test_form_validate_fail_checkvalues(self):
        values = {'default': 'test', 'integer': '15', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), False)
        self.assertEqual(self.form.submitted_data['integer'], '15')
        self.assertEqual(self.form.submitted_data['date'], '1998-02-01')

    def test_form_validate_ok(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        validator = Validator('integer',
                              'Error message',
                              external_validator)
        self.form.add_validator(validator)
        self.assertEqual(self.form.validate(values), True)

    def test_form_validate_ext_validator_fail(self):
        values = {'default': 'test', 'integer': '15', 'date': '1998-02-01'}
        validator = Validator('integer',
                              'Error message',
                              external_validator)
        self.form.add_validator(validator)
        self.assertEqual(self.form.validate(values), False)

    def test_form_validate_ext_validator_ok(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), True)

    def test_form_deserialize_int(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        self.form.validate(values)
        self.assertEqual(self.form.data['integer'], 16)

    def test_form_deserialize_float(self):
        values = {'default': 'test', 'integer': '16',
                  'date': '1998-02-01', 'float': '87.5'}
        self.assertEqual(self.form.validate(values), True)
        self.assertEqual(self.form.data['float'], 87.5)

    def test_form_deserialize_date(self):
        values = {'default': 'test', 'integer': '16',
                  'float': '87.5', 'date': '1998-02-01'}
        self.form.validate(values)
        self.assertEqual(self.form.data['date'], datetime.date(1998, 2, 1))

    def test_form_deserialize_string(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01', 'float': '99'}
        self.form.validate(values)
        self.assertEqual(self.form.data['default'], 'test')

    def test_form_deserialize_time(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01', 'float': '99', 'time': '00:12:11'}
        self.form.validate(values)
        self.assertEqual(self.form.data['time'], 731)

    def test_form_deserialize_interval(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01', 'float': '99', 'interval': '00:12:11'}
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'], datetime.timedelta(0, 731))

    def test_form_convert_interval_ok(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01', 'float': '99', 'interval': '01:12'}
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'], datetime.timedelta(hours=1, minutes=12))
    
    def test_form_convert_interval_false(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01', 'float': '99', 'interval': '00:12:11'}
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'] == datetime.timedelta(1), False)
    
    def test_form_convert_interval_mm_ok(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01', 'float': '99', 'interval': '12'}
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'], datetime.timedelta(minutes=12))
    
    def test_form_save(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), True)

    def test_form_warnings(self):
        values = {'select': '2', 'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        self.form.validate(values)
        warnings = self.form.get_warnings()
        self.assertEqual(len(warnings), 2)

    def test_form_save_without_validation(self):
        self.assertRaises(StateError, self.form.save)

    def test_form_fields(self):
        self.assertEqual(len(self.form.fields.values()), 9)

    def test_form_field_select_options(self):
        selfield = self.form.get_field('select')
        self.assertEqual(len(selfield.get_options()), 4)

    def test_generated_rules(self):
        num_rules = 0
        fields = self.form.fields
        for field in fields:
            num_rules += len(self.form.get_field(field).get_rules())
        self.assertEqual(num_rules, 5)

    def test_generated_warning_rules(self):
        num_rules = 0
        fields = self.form.fields
        for fieldname in fields:
            field = self.form.get_field(fieldname)
            rules = [r for r in field.get_rules() if r.triggers=="warning"]
            num_rules += len(rules)
        self.assertEqual(num_rules, 2)

    def test_generated_error_rules(self):
        num_rules = 0
        fields = self.form.fields
        for fieldname in fields:
            field = self.form.get_field(fieldname)
            rules = [r for r in field.get_rules() if r.triggers=="error"]
            num_rules += len(rules)
        self.assertEqual(num_rules, 3)
Exemple #4
0
class TestFormValidation(unittest.TestCase):
    def setUp(self):
        tree = load(os.path.join(test_dir, 'form.xml'))
        config = Config(tree)
        form_config = config.get_form('customform')
        self.form = Form(form_config)

    def test_form_init(self):
        pass

    def test_form_unknown_field(self):
        values = {'unknown': 'test', 'integer': '15', 'date': '1998-02-01'}
        self.form.validate(values)
        # Check that the unknown field has been filtered out as it was
        # not part of the form.
        self.assertEqual(self.form.data.has_key('unknown'), False)

    def test_form_validate_fail(self):
        values = {'default': 'test', 'integer': '15', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), False)

    def test_form_validate_fail_checkvalues(self):
        values = {'default': 'test', 'integer': '15', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), False)
        self.assertEqual(self.form.submitted_data['integer'], '15')
        self.assertEqual(self.form.submitted_data['date'], '1998-02-01')

    def test_form_validate_ok(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        validator = Validator('integer', 'Error message', external_validator)
        self.form.add_validator(validator)
        self.assertEqual(self.form.validate(values), True)

    def test_form_validate_ext_validator_fail(self):
        values = {'default': 'test', 'integer': '15', 'date': '1998-02-01'}
        validator = Validator('integer', 'Error message', external_validator)
        self.form.add_validator(validator)
        self.assertEqual(self.form.validate(values), False)

    def test_form_validate_ext_validator_ok(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), True)

    def test_form_deserialize_int(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        self.form.validate(values)
        self.assertEqual(self.form.data['integer'], 16)

    def test_form_deserialize_float(self):
        values = {
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01',
            'float': '87.5'
        }
        self.assertEqual(self.form.validate(values), True)
        self.assertEqual(self.form.data['float'], 87.5)

    def test_form_deserialize_date(self):
        values = {
            'default': 'test',
            'integer': '16',
            'float': '87.5',
            'date': '1998-02-01'
        }
        self.form.validate(values)
        self.assertEqual(self.form.data['date'], datetime.date(1998, 2, 1))

    def test_form_deserialize_string(self):
        values = {
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01',
            'float': '99'
        }
        self.form.validate(values)
        self.assertEqual(self.form.data['default'], 'test')

    def test_form_deserialize_time(self):
        values = {
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01',
            'float': '99',
            'time': '00:12:11'
        }
        self.form.validate(values)
        self.assertEqual(self.form.data['time'], 731)

    def test_form_deserialize_interval(self):
        values = {
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01',
            'float': '99',
            'interval': '00:12:11'
        }
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'],
                         datetime.timedelta(0, 731))

    def test_form_convert_interval_ok(self):
        values = {
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01',
            'float': '99',
            'interval': '01:12'
        }
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'],
                         datetime.timedelta(hours=1, minutes=12))

    def test_form_convert_interval_false(self):
        values = {
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01',
            'float': '99',
            'interval': '00:12:11'
        }
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'] == datetime.timedelta(1),
                         False)

    def test_form_convert_interval_mm_ok(self):
        values = {
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01',
            'float': '99',
            'interval': '12'
        }
        self.form.validate(values)
        self.assertEqual(self.form.data['interval'],
                         datetime.timedelta(minutes=12))

    def test_form_save(self):
        values = {'default': 'test', 'integer': '16', 'date': '1998-02-01'}
        self.assertEqual(self.form.validate(values), True)

    def test_form_warnings(self):
        values = {
            'select': '2',
            'default': 'test',
            'integer': '16',
            'date': '1998-02-01'
        }
        self.form.validate(values)
        warnings = self.form.get_warnings()
        self.assertEqual(len(warnings), 2)

    def test_form_save_without_validation(self):
        self.assertRaises(StateError, self.form.save)

    def test_form_fields(self):
        self.assertEqual(len(self.form.fields.values()), 9)

    def test_form_field_select_options(self):
        selfield = self.form.get_field('select')
        self.assertEqual(len(selfield.get_options()), 4)

    def test_generated_rules(self):
        num_rules = 0
        fields = self.form.fields
        for field in fields:
            num_rules += len(self.form.get_field(field).get_rules())
        self.assertEqual(num_rules, 5)

    def test_generated_warning_rules(self):
        num_rules = 0
        fields = self.form.fields
        for fieldname in fields:
            field = self.form.get_field(fieldname)
            rules = [r for r in field.get_rules() if r.triggers == "warning"]
            num_rules += len(rules)
        self.assertEqual(num_rules, 2)

    def test_generated_error_rules(self):
        num_rules = 0
        fields = self.form.fields
        for fieldname in fields:
            field = self.form.get_field(fieldname)
            rules = [r for r in field.get_rules() if r.triggers == "error"]
            num_rules += len(rules)
        self.assertEqual(num_rules, 3)