[Erp5-report] r39305 yo - /erp5/trunk/products/Formulator/tests/testSerializeForm.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Oct 19 07:03:06 CEST 2010
Author: yo
Date: Tue Oct 19 07:03:05 2010
New Revision: 39305
URL: http://svn.erp5.org?rev=39305&view=rev
Log:
Work around random behaviors for non-significant values by validators.
Modified:
erp5/trunk/products/Formulator/tests/testSerializeForm.py
Modified: erp5/trunk/products/Formulator/tests/testSerializeForm.py
URL: http://svn.erp5.org/erp5/trunk/products/Formulator/tests/testSerializeForm.py?rev=39305&r1=39304&r2=39305&view=diff
==============================================================================
--- erp5/trunk/products/Formulator/tests/testSerializeForm.py [utf8] (original)
+++ erp5/trunk/products/Formulator/tests/testSerializeForm.py [utf8] Tue Oct 19 07:03:05 2010
@@ -354,8 +354,28 @@ class SerializeTestCase(unittest.TestCas
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)
+
+ # 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 = ''
+ if b is None:
+ b = ''
+ return a == b
+
+ for key in field.values.keys():
+ self.assertTrue(compare(field.values[key], field2.values[key]),
+ message)
+
# test if default renderings are the same
self.assertEquals(field.render(REQUEST=request),
field2.render(REQUEST=request))
More information about the Erp5-report
mailing list