[Checkins] SVN: zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py Moved test to zope.formlib.

Martijn Faassen faassen at startifact.com
Wed Dec 30 15:41:21 EST 2009


Log message for revision 107389:
  Moved test to zope.formlib.
  

Changed:
  D   zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py

-=-
Deleted: zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py	2009-12-30 20:41:13 UTC (rev 107388)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py	2009-12-30 20:41:20 UTC (rev 107389)
@@ -1,225 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Generic Widget Tests
-
-$Id$
-"""
-from unittest import TestSuite, main
-
-from zope.component.testing import setUp, tearDown
-from zope.publisher.browser import TestRequest
-from zope.testing.doctest import DocTestSuite
-
-from zope.formlib.widget import Widget
-
-
-class TestContext(object):
-    __name__ = 'Test'
-    title = 'My Test Context'
-    description = 'A test context.'
-
-class FooWidget(Widget):
-    pass
-
-context = TestContext()
-request = TestRequest()
-
-class TestWidget(object):
-    """Tests basic widget characteristics.
-
-    Widget implements IWidget:
-
-        >>> from zope.interface.verify import verifyClass
-        >>> from zope.formlib.interfaces import IWidget
-        >>> verifyClass(IWidget, Widget)
-        True
-        >>> widget = Widget(context, request)
-        >>> from zope.interface.verify import verifyObject
-        >>> verifyObject(IWidget, widget)
-        True
-
-    The default values for widget are:
-
-        >>> widget.name
-        'field.Test'
-        >>> widget.label
-        'My Test Context'
-        >>> widget.hint
-        'A test context.'
-        >>> widget.visible
-        True
-
-    The `label` and `hint` attributes can be overriden, allowing views to
-    change them in specific contexts without needing to affect information
-    stored in the data model (the schema):
-
-        >>> widget.label = u'My Alternate Label'
-        >>> widget.label
-        u'My Alternate Label'
-
-        >>> widget.hint = u'Better help would be good.'
-        >>> widget.hint
-        u'Better help would be good.'
-
-    In the last example, the widget name consists of a prefix, a dot, and the
-    field name. You can change the prefix used by the widget as follows:
-
-        >>> widget.setPrefix('newprefix')
-        >>> widget.name
-        'newprefix.Test'
-
-    Using the empty string as prefix leaves the prefix off entirely:
-
-        >>> widget.setPrefix('')
-        >>> widget.name
-        'Test'
-
-    To configure a widget, call setRenderedValue with a value that the
-    widget should display:
-
-        >>> widget.setRenderedValue('Render Me')
-
-    The way a widget renders a value depends on the type of widget. E.g. a
-    browser widget will render the specified value in HTML.
-    """
-
-class TestInputWidget(object):
-    """Tests the input widget mixin.
-
-    InputWidget is a simple mixin that provides default implementations for
-    some of the IInputWidget methods. Because the implementation of widgets
-    across UI frameworks is so different, most of the input widget methods
-    must be handled by UI specific classes.
-
-    To test the default methods, we must create a basic input widget
-    that provides a getInputValue method:
-
-        >>> from zope.formlib.widget import InputWidget
-        >>> from zope.formlib.interfaces import WidgetInputError
-        >>> class TestInputWidget(InputWidget):
-        ...     def getInputValue(self):
-        ...         if self.context.required:
-        ...             raise WidgetInputError('', '', None)
-        ...         else:
-        ...             return 'Foo Bar'
-
-    All widgets rely on a field and a request:
-
-        >>> from zope.schema import Field
-        >>> field = Field()
-        >>> widget = TestInputWidget(field, TestRequest())
-
-    The default implementation of hasValidInput relies on
-    getInputValue to perform the validation of the current widget input.
-    In this simple example, the widget will always raise an error when its
-    field is read only:
-
-        >>> field.readonly = True
-        >>> widget.getInputValue()
-        Traceback (most recent call last):
-        WidgetInputError: ('', '', None)
-
-    A call to hasValidInput returns False instead of raising an error:
-
-        >>> widget.hasValidInput()
-        False
-
-    By changing the field's required attribute, getInputValue returns a
-    simple string:
-
-        >>> field.required = False
-        >>> widget.getInputValue()
-        'Foo Bar'
-
-    and hasValidInput returns True:
-
-        >>> widget.hasValidInput()
-        True
-    """
-
-class TestCustomWidgetFactory(object):
-    """Tests the custom widget factory.
-
-    Custom widgets can be created using a custom widget factory. Factories
-    are used to assign attribute values to widgets they create.
-
-    The custom widget factory can be used for three widget types:
-
-        -   Regular widgets
-        -   Sequence widgets
-        -   Vocabulary widgets
-
-    Test regular widget:
-
-        >>> from zope.formlib.widget import CustomWidgetFactory
-        >>> factory = CustomWidgetFactory(FooWidget, bar='baz')
-        >>> widget = factory(context, request)
-        >>> isinstance(widget, FooWidget)
-        True
-        >>> widget.bar
-        'baz'
-
-    Test sequence widget:
-
-        >>> from zope.schema import TextLine, List
-        >>> from zope.app.form.browser import ListSequenceWidget
-        >>> value_type = TextLine(__name__=u'bar')
-        >>> field = List( __name__=u'foo', value_type=value_type )
-
-        >>> factory = CustomWidgetFactory(ListSequenceWidget, 
-        ...     subwidget=CustomWidgetFactory(FooWidget, bar='baz'))
-
-        >>> widget = factory(field, request)
-        >>> widget.context.value_type is value_type
-        True
-        >>> isinstance(widget, ListSequenceWidget)
-        True
-
-        >>> isinstance(widget.subwidget, CustomWidgetFactory)
-        True
-        >>> subwidget = widget.subwidget(context, request)
-        >>> isinstance(subwidget, FooWidget)
-        True
-        >>> subwidget.bar
-        'baz'
-
-    Test vocabulary widget:
-
-        >>> from zope.schema import Choice
-        >>> from zope.app.form.browser import RadioWidget
-        >>> field = Choice( __name__=u'foo', values=['1', '2', '3'] )
-        >>> bound = field.bind(context)
-
-        >>> factory = CustomWidgetFactory(RadioWidget, 
-        ...      orientation = 'vertical')
-
-        >>> widget = factory(bound, request)
-        >>> [term.value for term in widget.context.vocabulary]
-        ['1', '2', '3']
-
-        >>> isinstance(widget, RadioWidget)
-        True
-        >>> widget.orientation
-        'vertical'
-
-    """
-
-
-def test_suite():
-    return TestSuite((
-        DocTestSuite(setUp=setUp, tearDown=tearDown),
-        ))
-
-if __name__=='__main__':
-    main(defaultTest='test_suite')



More information about the checkins mailing list