[Zope3-checkins] CVS: Zope3/src/zope/app/browser/component/tests - test_interfacewidget.py:1.24

Garrett Smith garrett at mojave-corp.com
Wed Aug 13 18:28:51 EDT 2003


Update of /cvs-repository/Zope3/src/zope/app/browser/component/tests
In directory cvs.zope.org:/tmp/cvs-serv9151/src/zope/app/browser/component/tests

Modified Files:
	test_interfacewidget.py 
Log Message:
Made the following changes to the widget machinery:

- Renamed IWidget getData to getInputValue

getInputValue no longer accepts an 'optional' flag. If value is missing or is invalid, getInputValue will raise an error. Calls made to this method should be in a try...except block to handle such conditions.

- Renamed IWidget haveData to hasInput

- Added method hasValidInput to IWidget and widget implementations

- Renamed IWidget setData to setRenderedValue

- Added functional tests for some of the core widgets - additional ftests are needed

- Deleted the class PossibleEmptyMeansMissing - it's no longer needed

- Added deprecation tests for changes to widgets

- Some widgets were refactored to use the new framework correctly

These changes were based on the proposal:

 http://dev.zope.org/Zope3/ComponentArchitecture/WidgetsFormsSchemas

Not all the changes in the proposal are included in this commit. Specifically, getRawData/setRawData and the refactoring of the widget error classes are the two major changes not included in this commit.

=== Zope3/src/zope/app/browser/component/tests/test_interfacewidget.py 1.23 => 1.24 ===
--- Zope3/src/zope/app/browser/component/tests/test_interfacewidget.py:1.23	Tue May 13 13:08:33 2003
+++ Zope3/src/zope/app/browser/component/tests/test_interfacewidget.py	Wed Aug 13 17:27:47 2003
@@ -29,7 +29,7 @@
 from zope.publisher.browser import TestRequest
 from zope.component.service import serviceManager, defineService
 from zope.app.services.servicenames import Interfaces
-from zope.app.interfaces.form import ConversionError
+from zope.app.interfaces.form import ConversionError, WidgetInputError
 
 class I(Interface):
     """bah blah
@@ -54,9 +54,12 @@
         service = InterfaceService()
         defineService(Interfaces, IInterfaceService)
         serviceManager.provideService(Interfaces, service)
-        service.provideInterface(I.__module__+'.'+I.__name__, I)
-        service.provideInterface(I2.__module__+'.'+I2.__name__, I2)
-        service.provideInterface(I3.__module__+'.'+I3.__name__, I3)
+        service.provideInterface(
+            'zope.app.browser.component.tests.test_interfacewidget.I', I)
+        service.provideInterface(
+            'zope.app.browser.component.tests.test_interfacewidget.I2', I2)
+        service.provideInterface(
+            'zope.app.browser.component.tests.test_interfacewidget.I3', I3)
 
         request = TestRequest()
 
@@ -73,8 +76,8 @@
 
         widget = InterfaceWidget(field, request)
 
-        self.assertEqual(widget.getData(), None)
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
+        self.assertRaises(WidgetInputError, widget.getInputValue)
 
         out = (
         '<input type="text" name="field.TestName.search" value="">'
@@ -130,16 +133,16 @@
         '</select>'
         )
 
-        self.assertEqual(widget.getData(), None)
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
+        self.assertRaises(WidgetInputError, widget.getInputValue)
 
         widget = InterfaceWidget(field, request)
 
         request.form["field.TestName"] = (
         'zope.app.browser.component.tests.test_interfacewidget.I2'
         )
-        self.assertEqual(widget.getData(), I2)
-        self.failUnless(widget.haveData())
+        self.assertEqual(widget.getInputValue(), I2)
+        self.failUnless(widget.hasInput())
 
         out = (
         '<input type="text" name="field.TestName.search" value="">'
@@ -195,8 +198,8 @@
 
         widget = InterfaceWidget(field, request)
 
-        self.assertEqual(widget.getData(), None)
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
+        self.assertRaises(WidgetInputError, widget.getInputValue)
 
         out = (
         '<input type="text" name="field.TestName.search" value="">'
@@ -228,8 +231,8 @@
 
         widget = InterfaceWidget(field, request)
 
-        self.assertEqual(widget.getData(), None)
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
+        self.assertRaises(WidgetInputError, widget.getInputValue)
 
         out = (
         '<input type="text" name="field.TestName.search" value="">'
@@ -268,8 +271,8 @@
         request.form["field.TestName"] = (
         'None'
         )
-        self.assertEqual(widget.getData(), None)
-        self.failUnless(widget.haveData())
+        self.assertEqual(widget.getInputValue(), None)
+        self.failUnless(widget.hasInput())
 
         out = (
         '<input type="text" name="field.TestName.search" value="">'
@@ -337,7 +340,7 @@
         widget = InterfaceWidget(field, request)
 
         request.form["field.TestName"] = ('bad interface name')
-        self.assertRaises(ConversionError, widget.getData)
+        self.assertRaises(ConversionError, widget.getInputValue)
 
     def testHidden(self):
         request = self.request
@@ -355,7 +358,7 @@
         request.form["field.TestName"] = (
         'zope.app.browser.component.tests.test_interfacewidget.I2'
         )
-        self.assertEqual(widget.getData(), I2)
+        self.assertEqual(widget.getInputValue(), I2)
         out = (
         '<input type="hidden" name="field.TestName"'
         ' value="zope.app.browser.component.tests.test_interfacewidget.I2" />'
@@ -378,7 +381,7 @@
         request.form["field.TestName"] = (
         'None'
         )
-        self.assertEqual(widget.getData(), None)
+        self.assertEqual(widget.getInputValue(), None)
         out = (
         '<input type="hidden" name="field.TestName" value="None" />'
         )
@@ -396,8 +399,8 @@
                                 required=False)
         widget = MultiInterfaceWidget(field, request)
 
-        self.assertEqual(widget.getData(), ())
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
+        self.assertRaises(WidgetInputError, widget.getInputValue)
 
         out = (
         'Use refresh to enter more interfaces'
@@ -452,15 +455,15 @@
         '</select>'
         )
         self.assertEqual(widget(), out)
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
 
         widget = MultiInterfaceWidget(field, request)
 
         request.form["field.TestName.i1"] = (
         'zope.app.browser.component.tests.test_interfacewidget.I2'
         )
-        self.assertEqual(widget.getData(), (I2,))
-        self.failUnless(widget.haveData())
+        self.assertEqual(widget.getInputValue(), (I2,))
+        self.failUnless(widget.hasInput())
         out = (
         'Use refresh to enter more interfaces'
         '<br />'
@@ -512,7 +515,7 @@
         '</select>'
         )
         self.assertEqual(widget(), out)
-        self.failUnless(widget.haveData())
+        self.failUnless(widget.hasInput())
 
         # There is no selected option because the option that would be
         # selected has been filtered out by the search.
@@ -559,7 +562,7 @@
         '</select>'
         )
         self.assertEqual(widget(), out)
-        self.failUnless(widget.haveData())
+        self.failUnless(widget.hasInput())
         label = '<label for="field.TestName">This is a test</label>'
         self.assertEqual(widget.label(), label)
         self.assertEqual(widget.row(),
@@ -574,8 +577,8 @@
                                 basetype=None)
         widget = MultiInterfaceWidget(field, request)
 
-        self.assertEqual(widget.getData(), ())
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
+        self.assertRaises(WidgetInputError, widget.getInputValue)
 
         out = (
         'Use refresh to enter more interfaces'
@@ -642,8 +645,8 @@
         self.assertEqual(widget(), out)
 
         request.form["field.TestName.i1"] = 'None'
-        self.assertEqual(widget.getData(), (None,))
-        self.failUnless(widget.haveData())
+        self.assertEqual(widget.getInputValue(), (None,))
+        self.failUnless(widget.hasInput())
 
         out = (
         'Use refresh to enter more interfaces'
@@ -771,7 +774,7 @@
         widget = MultiInterfaceWidget(field, request)
 
         request.form["field.TestName.i0"] = ('bad interface name')
-        self.assertRaises(ConversionError, widget.getData)
+        self.assertRaises(ConversionError, widget.getInputValue)
 
     def testHidden(self):
         request = self.request
@@ -786,7 +789,7 @@
         request.form["field.TestName.i0"] = (
         'zope.app.browser.component.tests.test_interfacewidget.I2'
         )
-        self.assertEqual(widget.getData(), (I2,))
+        self.assertEqual(widget.getInputValue(), (I2,))
         out = (
         '<input type="hidden" name="field.TestName.i0"'
         ' value="zope.app.browser.component.tests.test_interfacewidget.I2" />'
@@ -796,7 +799,7 @@
         request.form["field.TestName.i1"] = (
         'zope.app.browser.component.tests.test_interfacewidget.I3'
         )
-        self.assertEqual(widget.getData(), (I2, I3))
+        self.assertEqual(widget.getInputValue(), (I2, I3))
         out = (
         '<input type="hidden" name="field.TestName.i0"'
         ' value="zope.app.browser.component.tests.test_interfacewidget.I2" />'
@@ -818,7 +821,7 @@
         request.form["field.TestName.i0"] = (
         'None'
         )
-        self.assertEqual(widget.getData(), (None,))
+        self.assertEqual(widget.getInputValue(), (None,))
         out = (
         '<input type="hidden" name="field.TestName.i0" value="None" />'
         )
@@ -831,15 +834,15 @@
                                 required=False)
         widget = MultiInterfaceWidget(field, request)
 
-        self.assertEqual(widget.getData(), ())
-        self.failIf(widget.haveData())
+        self.failIf(widget.hasInput())
+        self.assertRaises(WidgetInputError, widget.getInputValue)
 
         request.form["field.TestName.i1"] = (
         'zope.app.browser.component.tests.test_interfacewidget.I2'
         )
         request.form["field.TestName.i0"] = ''
-        self.assertEqual(widget.getData(), (I2,))
-        self.failUnless(widget.haveData())
+        self.assertEqual(widget.getInputValue(), (I2,))
+        self.failUnless(widget.hasInput())
 
 class TestRenderInterfaceSelect(TestCase):
 




More information about the Zope3-Checkins mailing list