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