def test_write_values_with_interfaces(self):
        field_node1 = etree.Element('field')
        field_node2 = etree.Element('field')

        class IDummy(Interface):
            dummy1 = zope.schema.TextLine(title=u"dummy1")
            dummy2 = zope.schema.TextLine(title=u"dummy2")

        modes_values = [(IForm, u'dummy1', 'hidden'),
                        (IForm, u'dummy2', 'hidden'),
                        (IEditForm, u'dummy2', 'display')]
        IDummy.setTaggedValue(MODES_KEY, modes_values)
        omitted_values = [(IForm, u'dummy1', 'true'),
                          (IForm, u'dummy2', 'true'),
                          (IEditForm, u'dummy2', 'false')]
        IDummy.setTaggedValue(OMITTED_KEY, omitted_values)

        handler = FormSchema()
        handler.write(field_node1, IDummy, IDummy['dummy1'])
        handler.write(field_node2, IDummy, IDummy['dummy2'])

        self.assertEquals("z3c.form.interfaces.IForm:hidden",
                          field_node1.get(ns("mode", self.namespace)))
        self.assertEquals("z3c.form.interfaces.IForm:true",
                          field_node1.get(ns("omitted", self.namespace)))

        self.assertEquals(
            "z3c.form.interfaces.IForm:hidden z3c.form.interfaces.IEditForm:display",
            field_node2.get(ns("mode", self.namespace)))
        self.assertEquals(
            "z3c.form.interfaces.IForm:true z3c.form.interfaces.IEditForm:false",
            field_node2.get(ns("omitted", self.namespace)))
    def test_write(self):
        field_node = etree.Element('field')

        class IDummy(Interface):
            dummy = zope.schema.TextLine(title=u"dummy1")

        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy': 'SomeWidget'})
        IDummy.setTaggedValue(OMITTED_KEY, [(Interface, 'dummy', 'true')])
        IDummy.setTaggedValue(MODES_KEY, [(Interface, 'dummy', 'hidden')])
        IDummy.setTaggedValue(ORDER_KEY, [(
            'dummy',
            'before',
            'somefield',
        )])

        handler = FormSchema()
        handler.write(field_node, IDummy, IDummy['dummy'])

        widget_node = field_node.find(ns('widget', self.namespace))
        self.assertEquals("SomeWidget", widget_node.get('type'))
        self.assertEquals("true", field_node.get(ns("omitted",
                                                    self.namespace)))
        self.assertEquals("hidden", field_node.get(ns("mode", self.namespace)))
        self.assertEquals("somefield",
                          field_node.get(ns("before", self.namespace)))
    def test_write_no_data(self):
        field_node = etree.Element('field')

        class IDummy(Interface):
            dummy = zope.schema.TextLine(title=u"dummy1")

        handler = FormSchema()
        handler.write(field_node, IDummy, IDummy['dummy'])

        self.assertEquals(None, field_node.find(ns("widget", self.namespace)))
        self.assertEquals(None, field_node.get(ns("omitted", self.namespace)))
        self.assertEquals(None, field_node.get(ns("mode", self.namespace)))
        self.assertEquals(None, field_node.get(ns("before", self.namespace)))
 def test_write_no_data(self):
     field_node = ElementTree.Element('field')
     
     class IDummy(Interface):
         dummy = zope.schema.TextLine(title=u"dummy1")
         
     handler = FormSchema()
     handler.write(field_node, IDummy, IDummy['dummy'])
     
     self.assertEquals(None, field_node.get(ns("widget", self.namespace)))
     self.assertEquals(None, field_node.get(ns("omitted", self.namespace)))
     self.assertEquals(None, field_node.get(ns("mode", self.namespace)))
     self.assertEquals(None, field_node.get(ns("before", self.namespace)))
    def test_write_no_data(self):
        field_node = etree.Element('field')

        class IDummy(Interface):
            dummy = zope.schema.TextLine(title=u'dummy1')

        handler = FormSchema()
        handler.write(field_node, IDummy, IDummy['dummy'])

        self.assertEqual(None, field_node.find(ns('widget', self.namespace)))
        self.assertEqual(None, field_node.get(ns('omitted', self.namespace)))
        self.assertEqual(None, field_node.get(ns('mode', self.namespace)))
        self.assertEqual(None, field_node.get(ns('before', self.namespace)))
    def test_write_parameterized_widget_default(self):
        from plone.autoform.widgets import ParameterizedWidget
        pw = ParameterizedWidget(None)

        class IDummy(Interface):
            dummy1 = zope.schema.Text(title=u'dummy1')

        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy1': pw})

        fieldNode = etree.Element('field')
        handler = FormSchema()
        handler.write(fieldNode, IDummy, IDummy['dummy1'])

        self.assertEquals(etree.tostring(fieldNode), '<field/>')
    def test_write_parameterized_widget_default(self):
        from plone.autoform.widgets import ParameterizedWidget
        pw = ParameterizedWidget(None)

        class IDummy(Interface):
            dummy1 = zope.schema.Text(title=u'dummy1')
        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy1': pw})

        fieldNode = etree.Element('field')
        handler = FormSchema()
        handler.write(fieldNode, IDummy, IDummy['dummy1'])

        self.assertEquals(etree.tostring(fieldNode),
            '<field/>')
    def test_write_parameterized_widget_default_with_handler(self):
        from plone.autoform.widgets import ParameterizedWidget
        pw = ParameterizedWidget(None, klass='custom')

        class IDummy(Interface):
            dummy1 = zope.schema.Text(title=u'dummy1')
        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy1': pw})

        fieldNode = etree.Element('field')
        handler = FormSchema()
        handler.write(fieldNode, IDummy, IDummy['dummy1'])

        self.assertEquals(etree.tostring(fieldNode),
            '<field><ns0:widget xmlns:ns0="http://namespaces.plone.org/supermodel/form">'
            '<klass>custom</klass></ns0:widget></field>')
    def test_write_parameterized_widget_default_with_handler(self):
        from plone.autoform.widgets import ParameterizedWidget
        pw = ParameterizedWidget(None, klass='custom')

        class IDummy(Interface):
            dummy1 = zope.schema.Text(title=u'dummy1')

        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy1': pw})

        fieldNode = etree.Element('field')
        handler = FormSchema()
        handler.write(fieldNode, IDummy, IDummy['dummy1'])

        self.assertEquals(
            etree.tostring(fieldNode),
            '<field><ns0:widget xmlns:ns0="http://namespaces.plone.org/supermodel/form">'
            '<klass>custom</klass></ns0:widget></field>')
Example #10
0
    def test_write_parameterized_widget_string(self):
        from plone.autoform.widgets import ParameterizedWidget
        pw = ParameterizedWidget('foo')

        class IDummy(Interface):
            dummy1 = zope.schema.Text(title=u'dummy1')

        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy1': pw})

        fieldNode = etree.Element('field')
        handler = FormSchema()
        handler.write(fieldNode, IDummy, IDummy['dummy1'])

        self.assertEqual(
            etree.tostring(fieldNode), '<field><ns0:widget'
            ' xmlns:ns0="http://namespaces.plone.org/supermodel/form"'
            ' type="foo"/></field>')
    def test_write_parameterized_widget_string(self):
        from plone.autoform.widgets import ParameterizedWidget
        pw = ParameterizedWidget('foo')

        class IDummy(Interface):
            dummy1 = zope.schema.Text(title=u'dummy1')
        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy1': pw})

        fieldNode = etree.Element('field')
        handler = FormSchema()
        handler.write(fieldNode, IDummy, IDummy['dummy1'])

        self.assertEqual(
            etree.tostring(fieldNode),
            '<field><ns0:widget'
            ' xmlns:ns0="http://namespaces.plone.org/supermodel/form"'
            ' type="foo"/></field>'
        )
 def test_write_partial(self):
     field_node = ElementTree.Element('field')
     
     class IDummy(Interface):
         dummy = zope.schema.TextLine(title=u"dummy1")
     
     IDummy.setTaggedValue(WIDGETS_KEY, {'dummy': 'SomeWidget'})
     IDummy.setTaggedValue(OMITTED_KEY, [(Interface, 'dummy2', 'true')])
     IDummy.setTaggedValue(MODES_KEY, [(Interface, 'dummy', 'display'), (Interface, 'dummy2', 'hidden')])
     IDummy.setTaggedValue(ORDER_KEY, [])
     
     handler = FormSchema()
     handler.write(field_node, IDummy, IDummy['dummy'])
     
     self.assertEquals("SomeWidget", field_node.get(ns("widget", self.namespace)))
     self.assertEquals(None, field_node.get(ns("omitted", self.namespace)))
     self.assertEquals("display", field_node.get(ns("mode", self.namespace)))
     self.assertEquals(None, field_node.get(ns("before", self.namespace)))
    def test_write_values_with_interfaces(self):
        field_node1 = etree.Element('field')
        field_node2 = etree.Element('field')

        class IDummy(Interface):
            dummy1 = zope.schema.TextLine(title=u'dummy1')
            dummy2 = zope.schema.TextLine(title=u'dummy2')

        modes_values = [
            (IForm, u'dummy1', 'hidden'),
            (IForm, u'dummy2', 'hidden'),
            (IEditForm, u'dummy2', 'display')
        ]
        IDummy.setTaggedValue(MODES_KEY, modes_values)
        omitted_values = [
            (IForm, u'dummy1', 'true'),
            (IForm, u'dummy2', 'true'),
            (IEditForm, u'dummy2', 'false')
        ]
        IDummy.setTaggedValue(OMITTED_KEY, omitted_values)

        handler = FormSchema()
        handler.write(field_node1, IDummy, IDummy['dummy1'])
        handler.write(field_node2, IDummy, IDummy['dummy2'])

        self.assertEqual(
            'z3c.form.interfaces.IForm:hidden',
            field_node1.get(ns('mode', self.namespace))
        )
        self.assertEqual(
            'z3c.form.interfaces.IForm:true',
            field_node1.get(ns('omitted', self.namespace))
        )

        self.assertEqual(
            'z3c.form.interfaces.IForm:hidden '
            'z3c.form.interfaces.IEditForm:display',
            field_node2.get(ns('mode', self.namespace))
        )
        self.assertEqual(
            'z3c.form.interfaces.IForm:true '
            'z3c.form.interfaces.IEditForm:false',
            field_node2.get(ns('omitted', self.namespace))
        )
    def test_write(self):
        field_node = etree.Element('field')

        class IDummy(Interface):
            dummy = zope.schema.TextLine(title=u"dummy1")

        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy': 'SomeWidget'})
        IDummy.setTaggedValue(OMITTED_KEY, [(Interface, 'dummy', 'true')])
        IDummy.setTaggedValue(MODES_KEY, [(Interface, 'dummy', 'hidden')])
        IDummy.setTaggedValue(ORDER_KEY, [('dummy', 'before', 'somefield',)])

        handler = FormSchema()
        handler.write(field_node, IDummy, IDummy['dummy'])

        widget_node = field_node.find(ns('widget', self.namespace))
        self.assertEquals("SomeWidget", widget_node.get('type'))
        self.assertEquals("true", field_node.get(ns("omitted", self.namespace)))
        self.assertEquals("hidden", field_node.get(ns("mode", self.namespace)))
        self.assertEquals("somefield", field_node.get(ns("before", self.namespace)))
Example #15
0
    def test_write_partial(self):
        field_node = etree.Element('field')

        class IDummy(Interface):
            dummy = zope.schema.TextLine(title=u'dummy1')

        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy': 'SomeWidget'})
        IDummy.setTaggedValue(OMITTED_KEY, [(Interface, 'dummy2', 'true')])
        IDummy.setTaggedValue(MODES_KEY, [(Interface, 'dummy', 'display'),
                                          (Interface, 'dummy2', 'hidden')])
        IDummy.setTaggedValue(ORDER_KEY, [])

        handler = FormSchema()
        handler.write(field_node, IDummy, IDummy['dummy'])

        widget_node = field_node.find(ns('widget', self.namespace))
        self.assertEqual('SomeWidget', widget_node.get('type'))
        self.assertEqual(None, field_node.get(ns('omitted', self.namespace)))
        self.assertEqual('display', field_node.get(ns('mode', self.namespace)))
        self.assertEqual(None, field_node.get(ns('before', self.namespace)))
    def test_write_partial(self):
        field_node = etree.Element('field')

        class IDummy(Interface):
            dummy = zope.schema.TextLine(title=u'dummy1')

        IDummy.setTaggedValue(WIDGETS_KEY, {'dummy': 'SomeWidget'})
        IDummy.setTaggedValue(OMITTED_KEY, [(Interface, 'dummy2', 'true')])
        IDummy.setTaggedValue(
            MODES_KEY,
            [(Interface, 'dummy', 'display'), (Interface, 'dummy2', 'hidden')]
        )
        IDummy.setTaggedValue(ORDER_KEY, [])

        handler = FormSchema()
        handler.write(field_node, IDummy, IDummy['dummy'])

        widget_node = field_node.find(ns('widget', self.namespace))
        self.assertEqual('SomeWidget', widget_node.get('type'))
        self.assertEqual(None, field_node.get(ns('omitted', self.namespace)))
        self.assertEqual('display', field_node.get(ns('mode', self.namespace)))
        self.assertEqual(None, field_node.get(ns('before', self.namespace)))