=============== Testing support =============== Data Converter for Testing -------------------------- Sometimes, we want to upload binary files. Particulary in Selenium tests, it is nearly impossible to correctly input binary data - so we allow the user to specify base64 encoded data to be uploaded. This is accomplished by using a hidden input field that holds the value of the encoding desired. >>> import zope.schema >>> from z3c.form import widget >>> from z3c.form import testing As in converter.txt, we want to test a file upload widget. >>> filedata = zope.schema.Text( ... __name__='data', ... title=u'Some data to upload',) Lets try passing a simple string, and not specify any encoding. >>> dataWidget = widget.Widget(testing.TestRequest( ... form={'data.testing': 'haha'})) >>> dataWidget.name = 'data' >>> conv = testing.TestingFileUploadDataConverter(filedata, dataWidget) >>> conv.toFieldValue('') 'haha' And now, specify a encoded string >>> encStr = 'hoohoo'.encode('base64') >>> dataWidget = widget.Widget(testing.TestRequest( ... form={'data.testing': encStr, 'data.encoding': 'base64'})) >>> dataWidget.name = 'data' >>> conv = testing.TestingFileUploadDataConverter(filedata, dataWidget) >>> conv.toFieldValue('') 'hoohoo'