def toWidgetValue(self, value): if IXMLTextValue.providedBy(value): return value elif isinstance(value, unicode): return self.field.fromUnicode(value) elif value is None: return None raise ValueError("Cannot convert %s to an IXMLTextValue" % repr(value))
def toFieldValue(self, value): if IXMLTextValue.providedBy(value): if value.raw == u'': return self.field.missing_value return value elif isinstance(value, unicode): if value == u'': return self.field.missing_value return self.field.fromUnicode(value) raise ValueError("Cannot convert %s to an IXMLTextValue" % repr(value))
def test_converter(self): _marker = object() class IWithText(Interface): text = XMLText(title=u"Text", missing_value = _marker) widget = FieldWidget(IWithText['text'], XMLTextWidget(self.request)) widget.update() converter = XMLTextConverter(IWithText['text'], widget) self.assertTrue(converter.toFieldValue(u'') is _marker) self.assertTrue(converter.toFieldValue(XMLTextValue(u'')) is _marker) self.assertEquals(converter.toWidgetValue(None), None) self.assertTrue(IXMLTextValue.providedBy( converter.toWidgetValue(XMLTextValue(u'')))) self.request.form['%s' % widget.name] = u"<html><body>test</body></html>" self.request.form['%s.mimeType' % widget.name] = 'text/xml' widget.update() self.assertTrue(IXMLTextValue.providedBy( converter.toWidgetValue(u"<html><body>test</body></html>"))) with self.assertRaises(ValueError): converter.toWidgetValue(int)
def test_decode(self): value = self.marshaler.decode(self.xmltextvalue.raw_encoded) self.assertTrue(IXMLTextValue.providedBy(value)) self.assertEquals(value.raw_encoded, value.raw.encode('utf-8'))
def test_xmltextvalue(self): self.assertTrue(IXMLTextValue.providedBy(self.value))