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_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>')
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)))
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)))