[Erp5-report] r34143 jerome - /erp5/trunk/products/ERP5Form/tests/testFields.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Mar 26 13:30:36 CET 2010
Author: jerome
Date: Fri Mar 26 13:30:33 2010
New Revision: 34143
URL: http://svn.erp5.org?rev=34143&view=rev
Log:
- fix test for ListField.render_odt (was testing wrong behaviour)
- add test for lines field and multi lines field
- style changes
Modified:
erp5/trunk/products/ERP5Form/tests/testFields.py
Modified: erp5/trunk/products/ERP5Form/tests/testFields.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testFields.py?rev=34143&r1=34142&r2=34143&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testFields.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/tests/testFields.py [utf8] Fri Mar 26 13:30:33 2010
@@ -40,7 +40,8 @@
from Products.Formulator.FieldRegistry import FieldRegistry
from Products.Formulator.Validator import ValidationError
from Products.Formulator.StandardFields import FloatField, StringField,\
-DateTimeField, TextAreaField, CheckBoxField, ListField, LinesField
+DateTimeField, TextAreaField, CheckBoxField, ListField, LinesField, \
+MultiListField
from Products.Formulator.MethodField import Method, BoundMethod
from Products.Formulator.TALESField import TALESMethod
@@ -310,6 +311,21 @@
self.assertEquals(self.field.render_view(value=['My first Line\n', '&My Second Line\tfoo']),
'<div >My first Line<br />\n<br />\n&My Second Line\tfoo</div>')
+ def test_render_odt(self):
+ self.field.values['default'] = ['A', 'B']
+ self.assertEquals('{%(text)s}p' % NSMAP,
+ self.field.render_odt(as_string=False).tag)
+
+ def test_render_odt_view(self):
+ self.field.values['default'] = ['A', 'B']
+ element = self.field.render_odt(as_string=False,
+ REQUEST=self.portal.REQUEST)
+ self.assertEquals('{%(text)s}p' % NSMAP, element.tag)
+ # separated by text:line-break
+ self.assertEquals('{%(text)s}line-break' % NSMAP, element[0].tag)
+ self.assertEquals(['A', 'B'], [x for x in element.itertext()])
+
+
class TestCheckBoxField(ERP5TypeTestCase):
"""Tests TextArea field
"""
@@ -323,13 +339,13 @@
def test_render_odt(self):
self.field.values['default'] = 1
- self.assertEquals('{%s}checkbox' % (NSMAP.get('form')),
+ self.assertEquals('{%(form)s}checkbox' % NSMAP,
self.field.render_odt(as_string=False).tag)
def test_render_odt_view(self):
self.field.values['default'] = 1
self.portal.REQUEST.set('editable_mode', 0)
- self.assertEquals('{%s}p' % (NSMAP.get('text')),
+ self.assertEquals('{%(text)s}p' % NSMAP,
self.field.render_odt(as_string=False, REQUEST=self.portal.REQUEST).tag)
self.assertEquals('1', self.field.render_odt(as_string=False, REQUEST=self.portal.REQUEST).text)
@@ -356,9 +372,7 @@
self.tic()
def createCategories(self):
- """
- Light install create only base categories, so we create
- some categories for testing them
+ """Create some categories into gender
"""
category_tool = self.portal.portal_categories
category_dict = {'a':1, 'b':2, 'd':3, 'c':4, 'e':None, 'g':None, 'f':None}
@@ -369,9 +383,18 @@
int_index=int_index)
def test_render_odt(self):
- self.field.values['default'] = ['My first Line', 'My Second Line', 'foo']
- self.assertEquals('text:line-break',
- self.field.render_odt(as_string=False)[0].xpath('name()'))
+ items = [('My first Line', '1'), ('My Second Line', '2')]
+ self.field.values['items'] = items
+ self.field.values['default'] = '2'
+ element = self.field.render_odt(as_string=False)
+ self.assertEquals('{%(text)s}p' % NSMAP, element.tag)
+ self.assertEquals('My Second Line', element.text)
+
+ # values not in items are displayed with ???
+ self.field.values['default'] = '3'
+ element = self.field.render_odt(as_string=False)
+ self.assertEquals('??? (3)', element.text)
+
def test_listField_value_order(self):
'''This test check the list field value order
@@ -405,6 +428,41 @@
self.assertEquals(person.Person_view.my_gender.get_value('items'),
[['', ''], ['e', 'e'], ['f', 'f'], ['g', 'g'], ['a', 'a'], ['b', 'b'],
['d', 'd'], ['c', 'c']])
+
+
+class TestMultiListField(ERP5TypeTestCase):
+
+ def afterSetUp(self):
+ self.field = MultiListField('test_field')
+ self.widget = self.field.widget
+ self.field.values['items'] = [('A', 'a',), ('B', 'b')]
+ self.field.values['default'] = ['a', 'b']
+
+ def test_render_view(self):
+ self.assertEquals('A<br />\nB', self.field.render_view(value=['a', 'b']))
+
+ def test_render_odt(self):
+ element = self.field.render_odt(as_string=False)
+ self.assertEquals('{%(text)s}p' % NSMAP, element.tag)
+ # separated by text:line-break
+ self.assertEquals('{%(text)s}line-break' % NSMAP, element[0].tag)
+ self.assertEquals(['A', 'B'], [x for x in element.itertext()])
+
+ def test_render_odt_view(self):
+ element = self.field.render_odt_view(as_string=False,
+ value=['a', 'b'],
+ REQUEST=self.portal.REQUEST)
+ self.assertEquals('{%(text)s}p' % NSMAP, element.tag)
+ # separated by text:line-break
+ self.assertEquals('{%(text)s}line-break' % NSMAP, element[0].tag)
+ self.assertEquals(['A', 'B'], [x for x in element.itertext()])
+
+ # values not in items are displayed with ???
+ element = self.field.render_odt_view(as_string=False,
+ value=['other'],
+ REQUEST=self.portal.REQUEST)
+ self.assertEquals('{%(text)s}p' % NSMAP, element.tag)
+ self.assertEquals('??? (other)', element.text)
class TestProxyField(ERP5TypeTestCase):
@@ -806,6 +864,7 @@
suite.addTest(unittest.makeSuite(TestLinesField))
suite.addTest(unittest.makeSuite(TestCheckBoxField))
suite.addTest(unittest.makeSuite(TestListField))
+ suite.addTest(unittest.makeSuite(TestMultiListField))
suite.addTest(unittest.makeSuite(TestProxyField))
suite.addTest(unittest.makeSuite(TestFieldValueCache))
return suite
More information about the Erp5-report
mailing list