[Checkins] SVN: Zope3/trunk/ #98111: (reopened) z.a.form.browser.itemswidget.MultiDataHelper._toFieldValue() fix for empty values

Leonardo Rochael Almeida leo at hiper.com.br
Mon Apr 30 23:43:11 EDT 2007


Log message for revision 74952:
  #98111: (reopened) z.a.form.browser.itemswidget.MultiDataHelper._toFieldValue() fix for empty values

Changed:
  U   Zope3/trunk/doc/CHANGES.txt
  U   Zope3/trunk/src/zope/app/form/browser/itemswidgets.py
  U   Zope3/trunk/src/zope/app/form/browser/tests/test_itemswidget.py

-=-
Modified: Zope3/trunk/doc/CHANGES.txt
===================================================================
--- Zope3/trunk/doc/CHANGES.txt	2007-05-01 03:42:59 UTC (rev 74951)
+++ Zope3/trunk/doc/CHANGES.txt	2007-05-01 03:43:10 UTC (rev 74952)
@@ -18,6 +18,10 @@
 
     Bugs fixed
 
+      - #98111: z.a.form.browser.itemswidget.MultiDataHelper._toFieldValue()
+        context._type attribute was being ignored when the result was an empty
+        collection.
+
       - Made zope.app.publication use the component architecture to look up
         the global authentication utility.
 

Modified: Zope3/trunk/src/zope/app/form/browser/itemswidgets.py
===================================================================
--- Zope3/trunk/src/zope/app/form/browser/itemswidgets.py	2007-05-01 03:42:59 UTC (rev 74951)
+++ Zope3/trunk/src/zope/app/form/browser/itemswidgets.py	2007-05-01 03:43:10 UTC (rev 74952)
@@ -189,8 +189,8 @@
     def _toFieldValue(self, input):
         """See SimpleInputWidget"""
         if input is None:
-            return []
-        if not isinstance(input, list):
+            input = []
+        elif not isinstance(input, list):
             input = [input]
         try:
             values = self.convertTokensToValues(input)

Modified: Zope3/trunk/src/zope/app/form/browser/tests/test_itemswidget.py
===================================================================
--- Zope3/trunk/src/zope/app/form/browser/tests/test_itemswidget.py	2007-05-01 03:42:59 UTC (rev 74951)
+++ Zope3/trunk/src/zope/app/form/browser/tests/test_itemswidget.py	2007-05-01 03:43:10 UTC (rev 74952)
@@ -460,11 +460,19 @@
         self.assertEqual(widget.getInputValue(), ['two', 'three'])
 
         self._field = ICollector.get('letters')
+        widget = self._makeWidget(form={'field.letters-empty-marker': '1'})
+        widget.setPrefix('field.')
+        self.assertEqual(widget.getInputValue(), sets.Set())
         widget = self._makeWidget(form={'field.letters': ['token2', 'token3']})
         widget.setPrefix('field.')
         self.assertEqual(widget.getInputValue(), sets.Set(['two', 'three']))
 
         self._field = ICollector.get('frozenLetters')
+        widget = self._makeWidget(form={'field.frozenLetters-empty-marker':
+                                        '1'})
+        widget.setPrefix('field.')
+        field_value = widget.getInputValue()
+        self.assertEqual(field_value, frozenset())
         widget = self._makeWidget(form={'field.frozenLetters':
                                         ['token2', 'token3']})
         widget.setPrefix('field.')



More information about the Checkins mailing list