def test_deserializeFlushesOldFields(self): # test that deserializing a form removes old values which # have been defined on that from previously # this may be an issue if one edits a form directly # via the ZMI "XML" tab; removing a field in the XML did not # remove that field from the form contents form = ZMIForm('test', 'Source') form2 = ZMIForm('test2', 'Target') form.manage_addField('date_field', 'Date Field', 'DateTimeField') form2.manage_addField('another_field', 'String Field', 'StringField') xml = formToXML(form) XMLToForm(xml, form2) self.assertEqualForms(form, form2) self.failIf( form2.has_field('another_field') ) self.failIf('another_field' in form2.objectIds() )
def test_deserializeFlushesOldFields(self): # test that deserializing a form removes old values which # have been defined on that from previously # this may be an issue if one edits a form directly # via the ZMI "XML" tab; removing a field in the XML did not # remove that field from the form contents form = ZMIForm('test', 'Source') form2 = ZMIForm('test2', 'Target') form.manage_addField('date_field', 'Date Field', 'DateTimeField') form2.manage_addField('another_field', 'String Field', 'StringField') xml = formToXML(form) XMLToForm(xml, form2) self.assertEqualForms(form, form2) self.failIf(form2.has_field('another_field')) self.failIf('another_field' in form2.objectIds())
def test_escaping(self): """ test if the necessary elements are escaped in the XML. (Actually this test is very incomplete) """ form = ZMIForm('test', '<EncodingTest>') # XXX don't test escaping of name, as needs to be javascript # valid anyway? form.name = 'name' form.add_group('a & b') form.manage_addField('string_field', '<string> Field', 'StringField') form.manage_addField('int_field', '<int> Field', 'IntegerField') form.manage_addField('float_field', '<Float> Field', 'FloatField') form.manage_addField('date_field', '<Date> Field', 'DateTimeField') form.manage_addField('list_field', '<List> Field', 'ListField') form.manage_addField('multi_field', '<Checkbox> Field', 'MultiCheckBoxField') form2 = ZMIForm('test2', 'ValueTest') xml = formToXML(form) XMLToForm(xml, form2) for field in form.get_fields(): self.assert_(form2.has_field(field.getId())) field2 = getattr(form2, field.getId()) # XXX test if values are the same self.assertEqual(field.values, field2.values) # test if default renderings are the same self.assertEqual(field.render(), field2.render()) self.assertEqual(form.title, form2.title) self.assertEqual(form.name, form2.name) self.assertEqual(form.action, form2.action) self.assertEqual(form.enctype, form2.enctype) self.assertEqual(form.method, form2.method) # if we have forgotten something, this will usually remind us ;-) self.assertEqual(form.render(), form2.render())
def test_escaping(self): """ test if the necessary elements are escaped in the XML. (Actually this test is very incomplete) """ form = ZMIForm('test', '<EncodingTest>') # XXX don't test escaping of name, as needs to be javascript # valid anyway? form.name = 'name' form.add_group('a & b') form.manage_addField('string_field', '<string> Field', 'StringField') form.manage_addField('int_field', '<int> Field', 'IntegerField') form.manage_addField('float_field', '<Float> Field', 'FloatField') form.manage_addField('date_field', '<Date> Field', 'DateTimeField') form.manage_addField('list_field', '<List> Field', 'ListField') form.manage_addField('multi_field', '<Checkbox> Field', 'MultiCheckBoxField') form2 = ZMIForm('test2', 'ValueTest') xml = formToXML(form) XMLToForm(xml, form2) for field in form.get_fields(): self.assert_(form2.has_field(field.getId())) field2 = getattr(form2, field.getId()) # XXX test if values are the same self.assertEquals(field.values, field2.values) # test if default renderings are the same self.assertEquals(field.render(), field2.render()) self.assertEquals(form.title, form2.title) self.assertEquals(form.name, form2.name) self.assertEquals(form.action, form2.action) self.assertEquals(form.enctype, form2.enctype) self.assertEquals(form.method, form2.method) # if we have forgotten something, this will usually remind us ;-) self.assertEquals(form.render(), form2.render())
request.update( {'field_default':'None', 'field_required':'', }) empty_field.manage_edit(REQUEST=request) except ValidationError, e: self.fail('error when editing field %s; error message: %s' % (e.field_id, e.error_text) ) form2 = ZMIForm('test2', 'ValueTest') xml = formToXML(form) XMLToForm(xml, form2) for field in form.get_fields(): self.assert_(form2.has_field(field.getId())) field2 = getattr(form2, field.getId()) # XXX In Formulator, None and '' are treated as nearly # being identical, and validators often turn '' to None. # So there may be false positive, if we compare the values # naively. message = 'the values of %r and %r are different: %r != %r' \ % (field, field2, field.values, field2.values) self.assertEquals(sorted(field.values.iterkeys()), sorted(field2.values.keys()), message) def compare(a, b): if a is None: a = ''
'field_default': 'None', 'field_required': '', }) empty_field.manage_edit(REQUEST=request) except ValidationError, e: self.fail('error when editing field %s; error message: %s' % (e.field_id, e.error_text)) form2 = ZMIForm('test2', 'ValueTest') xml = formToXML(form) XMLToForm(xml, form2) for field in form.get_fields(): self.assert_(form2.has_field(field.getId())) field2 = getattr(form2, field.getId()) # XXX In Formulator, None and '' are treated as nearly # being identical, and validators often turn '' to None. # So there may be false positive, if we compare the values # naively. message = 'the values of %r and %r are different: %r != %r' \ % (field, field2, field.values, field2.values) self.assertEqual(sorted(field.values.iterkeys()), sorted(field2.values.keys()), message) def compare(a, b): if a is None: a = '' if b is None: